IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[ java.net ] récupérer un fichier PDF à partir d'une URL


Sujet :

Entrée/Sortie Java

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut [ java.net ] récupérer un fichier PDF à partir d'une URL
    Bonjour, je suis ce qu'on pourrait appeller un handicapé du Système et Réseaux
    Ca tombe bien, je dois manipuler java.net ; pour une raison obscure (qu'il serait trop long ici d'expliciter), je dois recuperer un fichier PDF à partir de son URL, puis le copier dans un nouveau PDF, j'ai gribouillé un truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    URL url2 = new URL("http://java.developpez.com/IntroJDBC.pdf");
     
    		URLConnection connexion = url2.openConnection();
     
    		InputStream flux = connexion.getInputStream();
     
    		byte contenuFichier[] = new byte[connexion.getContentLength()];
    		long octetLus = flux.read(contenuFichier);
     
    		System.out.println(octetLus);
    C'est juste le début, mais déja, pourquoi je peux pas caster mon InputStream en FileInputStream (c'est un PDF ...)?



    Merci d'avance .

  2. #2
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    Ca c'est normal étant donné que FileInputStream est une classe dérivée de InputStream. FileInputStream étant plus spécialisée tu ne peux pas demander à InputStream d'etre casté en FileInputStream.

    De plus ce que tu récupères n'est pas un fichier mais un stream qui correspond au contenu de ton fichier.

    J'espère avoir été assez clair.

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    oui, je modifie mon truc et je regarde si ça marche, merci

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    En fait, ça marche tjours pas, j'y arrive bien avec java.io mais ces putains d'URL ...

    là, je met le code avec java.io :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    File sourceFile = new File("c:/testPDF.pdf");
    	    FileInputStream fis = new FileInputStream(sourceFile);
    	    BufferedInputStream bis = new BufferedInputStream(fis);
    	    long l = sourceFile.length();
     
    	    // Préparation du flux de sortie
    	    FileOutputStream fos = new FileOutputStream("c:/sortiePDF.pdf");
                BufferedOutputStream bos = new BufferedOutputStream(fos);
     
    	    // Copie des octets du flux d'entrée vers le flux de sortie
    	    for(long i=0;i<l;i++) {
                    bos.write(bis.read());
    	    }
     
    	    // Fermeture des flux de données
    	    bos.flush();
    	    bos.close();
    	    bis.close();
    Mais quand j'essaye de le faire au travers d'une URL, je comprends plus trop ...
    Qu'est-ce que je dois filer à mon flux de sortie ?
    Qu'est-ce que je dois modifier pour que ça marche en spécifiant une URL ?
    Merci d'avance.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    Dans ton premier exemple est-ce qu'il s'affiche quelquechose sur la console ?

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Oui, 2550 en l'occurence.
    Désolé, je vais partir de mon boulot, je ne pourrais pas répondre avant demain après ce post.
    Merci pout ta disponibilité

  7. #7
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    En fait il faut que tu fasses ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    		URL url = new URL("http://java.developpez.com/IntroJDBC.pdf");
    		BufferedInputStream in = new BufferedInputStream(url.openStream());
    		FileOutputStream fos = new FileOutputStream("test.pdf", true);
    		byte buff[] = new byte[1024];//Ou une autre valeur
    		while ((in.read(buff)) != -1)
    			fos.write(buff);
     
    		fos.close();
    La méthode read te renvoie le nombre d'octets lus. Donc tu peux mettre la valeur que tu veux à la place de 1024.

    J'espère que ca resoudra ton problème.

  8. #8
    Inactif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Ok, j'ai testé ça marche nickel ;-)
    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/04/2011, 10h07
  2. [PDF] Génération de fichier PDF à partir de l'URL
    Par akrogames dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 31/03/2010, 10h16
  3. Récupérer des fichiers XML à partir d'une Table
    Par faraway dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/09/2009, 11h32
  4. [FPDF] Générer deux fichiers PDF à partir d'une classe
    Par doreen07 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/10/2007, 11h17
  5. [DOM] [JAVA + XML] Ouvrir un fichier xml à partir d'une url
    Par Hell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2005, 00h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo