Kats555
@Kats555

Как читать из zip архива?

Здравствуйте ! В моем zip архиве лежат папки и файлы, считывается только 1 файл, как считать все файлы и папки ?

P.S. - Пишу лаунчер для майнкрафт :D
Вот мой код.

public static void unZip(String arhiv, String outDir){
        try {
            ZipInputStream zis = new ZipInputStream(new FileInputStream(arhiv));

            String name;
            long size;
            ZipEntry entry;

            while ((entry = zis.getNextEntry()) != null){
                name = entry.getName();
                size = entry.getSize();

                System.out.println("Получены файлы: " + name + ", размером - " + size + " ; ");

                FileOutputStream out = new FileOutputStream(outDir + name);

                for (int c = zis.read(); c != -1; c++){
                    out.write(c);
                }
                out.flush();
                zis.closeEntry();
                out.close();
            }
        } catch (IOException e){
            e.printStackTrace();
        }


Вот содержимое архива который я хочу считать.

6259bbf292df2828793376.jpeg

6259bbfb89b5a317382993.jpeg
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Вместо вот этой колбасы
for (int c = zis.read(); c != -1; c++){
      out.write(c);
}

следует использовать из библиотеки Apache Commons IO
import org.apache.commons.io.IOUtils;

   IOUtils.copy(zis, out);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы