Bonsoir,
est il possible de lire le contenu d'un fichier zip en ligne à une adresse comme http://toto/fichier.zip (sans téléchargement du .zip sur le serveur)
avec java.util.zip.ZipFile par exemple?
Avez vous un exemple d'utilisation ?
Merci
Bonsoir,
est il possible de lire le contenu d'un fichier zip en ligne à une adresse comme http://toto/fichier.zip (sans téléchargement du .zip sur le serveur)
avec java.util.zip.ZipFile par exemple?
Avez vous un exemple d'utilisation ?
Merci
Bonjour
Avec la classe File tu ne pourras pas, me semble-t-il, lire un fichier en ligne.
Il faudra utiliser la classe URL et la méthode openStream pour parser toi-même le fichier. Il me semble en plus qu'un fichier zip ne contient le catalogue des fichiers qu'en fin de fichier, alors il faudra en plus te renseigner sur le format du fichier zip pour savoir où commencer à récupérer le contenu "utile" pour ton besoin.
Je ne sais pas si ça a déjà été fait par ailleurs.
A+
j'ai trouvé comment lire le contenu d'un zip mais le programme s’arrête avant la fin.
Est il possible de lire le contenu des fichiers pdf qui sont dans ce zip sans extraire l'archive ? Le but étant de récupérer des informations de ces fichiers avec google app engine je ne peux donc pas écrire ni créer de fichiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Exception in thread "main" java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(ZipCoder.java:58) at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:297) at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:121) at javaapplication3.JavaApplication3.main(JavaApplication3.java:35) Java Result: 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 InputStream input = new URL("lienUrl/fichier.zip").openStream(); ZipInputStream zis = new ZipInputStream(input); ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { System.out.println("entry: " + entry.getName() + ", " + entry.getSize()); // consume all the data from this entry while (zis.available() > 0) zis.read(); // zis.closeEntry() }
Peut etre qu'il vaudrait mieux mettre le null en premier (null !=...). Pis l'affectation de la valeur au sein de la condition, cela pose aussi peut-être aussi problème (c'est sur ce point que je mise). N y a t il pas un iterator à récupérer ou une methode du genre ".hasNext()" que tu pourrais utiliser de la manière : while(zis.hasNext()) ? (Peut être le .available ?)
Bref, je ne suis pas un expert mais peut être que cela t'aidera.
Ps: tu fais une affectation de variable dans le while mais est ce que la variable entry est utilisée pour faire la vérification booleenne ?
Dernière modification par Invité ; 31/03/2013 à 23h53.
Partager