Lire directement un fichier dans un fichier Zip - Java
Ma situation est que j'ai un fichier zip qui contient certains fichiers (txt, png, ...) et je veux le lire directement par leurs noms, j'ai testé le code suivant mais aucun résultat (NullPointerExcepion):
InputStream in = Main.class.getResourceAsStream("/resouces/zipfile/test.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
ressources est un package et zipfile est un fichier zip.
Oui, c'est certainement pas d'aller travailler.
vous avez besoin java.util.zip docs.oracle.com/javase/6/docs/api/java/util/zip/...
Est le fichier zip sur le chemin de la classe?? Il doit être
vous avez raison, si j'ajoute zipFile.zip dans le chemin, il fonctionne très bien, c'est aussi une solution de (+1)
vous avez besoin java.util.zip docs.oracle.com/javase/6/docs/api/java/util/zip/...
Est le fichier zip sur le chemin de la classe?? Il doit être
vous avez raison, si j'ajoute zipFile.zip dans le chemin, il fonctionne très bien, c'est aussi une solution de (+1)
OriginalL'auteur Adil | 2012-11-15
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez être sûr que votre fichier zip ne sera jamais emballé à l'intérieur d'un autre sac, vous pouvez utiliser quelque chose comme:
Ou:
Sinon, vos choix sont:
Pouvez-vous expliquer plus en première ligne (si vous pouvez ...)
Assurez-vous. Les exemples de code ne fonctionnera pas si votre fichier zip avec les ressources contenues dans un bocal. Par cela je veux dire que le fichier doit être un fichier réel sur le système de fichiers, et pas un POT de l'entrée.
Comment cela peut être fait, je veux dire comment en faire un véritable fichier lorsque je veux générer le pot de mon projet? toutes les ressources sont les bienvenus aussi!
C'est difficile à dire, sans savoir comment votre projet va être déployé. Si il y a un répertoire sur votre chemin de classe, qui contient un sous-répertoire "ressources", qui, à son tour, contient votre fichier zip, qui pourrait travailler (vous pourriez avoir besoin de changer
Main.class.getResource("/resources/...")
àMain.class.getClassLoader().getResource("resources/...")
). Si c'était moi, je serais probablement le package les ressources dans le même pot que le code, donc je n'ai pas eu ce problème en premier lieu.OriginalL'auteur Martin Ellis
Votre approche actuelle n'est certainement pas d'aller travailler. Vous fait de l'arbitraire d'un "accès" régime et l'a utilisé dans une classe qui n'a aucune idée de ce que vous essayez de faire. Ce que vous peut faire est d'utiliser un ZipInputStream de lire l'entrée vous êtes à la recherche pour:
C'est adhoc code, le fixer en place pour faire ce que vous avez besoin. Aussi, il peut être plus efficace classes pour manipuler les fichiers Zip, par exemple dans le Apache Commons IO bibliothèque.
OriginalL'auteur Perception
Quel est le chemin de la test.txt dans le fichier zip? Vous devez utiliser le chemin d'accès dans le fichier zip pour lire ce fichier. Assurez-vous également que votre zipfile est dans le classpath. En fait, vous pouvez regrouper cela dans un fichier jar.
OriginalL'auteur muruga