Comment lire les fichiers dans a.zip fichier en Java?


Je voudrais analyser un.fichier zip. Le .le fichier zip contient un dossier. Le dossier contient plusieurs fichiers. Je voudrais lire tous les fichiers sans écrire le .fichier zip sur le disque. J'ai le code suivant:

        zipFile = new ZipFile(file);
        Enumeration<? extends ZipEntry> entries = zipFile.entries();

        while(entries.hasMoreElements()){
            ZipEntry entry = entries.nextElement();
            InputStream stream = zipFile.getInputStream(entry);
            InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
            Scanner inputStream = new Scanner(reader);
            inputStream.nextLine();

            while (inputStream.hasNext()) {
                String data = inputStream.nextLine(); // Gets a whole line
                String[] line = data.split(SEPARATOR); // Splits the line up into a string array
            }

            inputStream.close();
            stream.close();
        }
        zipFile.close();

Le problème est que cela ne fonctionne que lorsque les fichiers sont directement dans le .fichier zip. Comment puis-je adapter mon code pour qu'il fonctionne également lorsque les fichiers sont dans un dossier dans le .fichier zip?

Author: machinery, 2016-02-10

1 answers

Vous pouvez mettre le code qui lit le contenu dans un if

ZipEntry entry = entries.nextElement();
if (!entry.isDirectory()) {
    InputStream stream = zipFile.getInputStream(entry);
...
    stream.close();
}
 3
Author: radoh, 2016-02-10 11:35:50