OVH Cloud OVH Cloud

S'assurer du chargement complet d'un InputStream avant de l'utiliser comme fichier

1 réponse
Avatar
Spot
Bonjour,

je souhaite recuperer en stream un fichier PDF disponible a une url
donnée afin de le parser pour en extraire le texte, mais je voudrais
m'assurer que tout le stream est lu a partir de l'url avant de commencer
mon Parsing.

En gros la construction complete est :

adresse Url > java.net.URL > java.io.InputStream > java.io.File >
Java.io.FileInputStream > MonParser

En fait, cette construction fonctionne bien dans 95% des cas, mais j'ai
l'impression que sur de trés gros fichiers a télécharger, mon parser
essaye de travailler sur un FileInputStream qui n'est pas encore
complet, du coup ca me genere des erreurs.

Ma question est: comment puis-je faire pour m'assurer que la totalité du
flux venant de l'url est bien arrivé avant de transmettre le tout a
File, FileInputStream et MonParser ? Si j'utilise un BufferedInputStream
a la place de InputStream, ca risque de m'aider ?

Merci d'avance si vous avez des idées.


Xavier


PS: je joint les 3 lignes de codes incriminées au cas ou.


Url url = new URL("http://www.test.com/MyBigFichierPDF.pdf");

PdfDocumentHandler handler = new PdfDocumentHandler();
Document doc = handler.getDocument( new FileInputStream(new
File(url.openStream() ) ) );

1 réponse

Avatar
Spot
Spot disait le 21/06/2005 09:08:

Bonjour,

je souhaite recuperer en stream un fichier PDF disponible a une url
donnée afin de le parser pour en extraire le texte, mais je voudrais
m'assurer que tout le stream est lu a partir de l'url avant de commencer
mon Parsing.

Je me repond a moi meme, tout est rentré dans l'ordre a partir du moment

ou j'ai stocké le stream dans un fichier temporaire avant de le traiter.

A+