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
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 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);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект