Почему теряются все ZipEntry после первого?

226
21 мая 2022, 16:00

У меня есть SequenceInputStream, в котором находятся 3 FileInputStream-а. Каждый из них открыт для zip папки, в которой лежит текстовый файл. Мне нужно последовательно прочитать все 3 архива и записать результат в файл. Но почему-то метод getNextEntry() у ZipInputStream возвращает null после прочтения первого архива.

        ArrayList<String> files = new ArrayList<>();
        ArrayList<InputStream> streams = new ArrayList<>();
        files.add("C:/temp/file1.zip");
        files.add("C:/temp/file2.zip");
        files.add("C:/temp/file3.zip");
        String resultFile = "C:/temp/result.txt";
        Collections.sort(files);
        for (String file : files) streams.add(new FileInputStream(file));
        ZipInputStream zip = new ZipInputStream(new SequenceInputStream(Collections.enumeration(streams)));
        while (true) {
            ZipEntry entry = zip.getNextEntry();
            if (entry == null) break;
            System.out.println(entry.getName());
            try (OutputStream os = new BufferedOutputStream(new FileOutputStream(resultFile))) {
                final int bufferSize = 1024;
                byte[] buffer = new byte[bufferSize];
                for (int readBytes; (readBytes = zip.read(buffer, 0, bufferSize)) > -1; ) {
                    os.write(buffer, 0, readBytes);
                }
                os.flush();
            }
        }
READ ALSO
Установить анимацию на программный dismiss BottomSheetDialogFragment&#39;а

Установить анимацию на программный dismiss BottomSheetDialogFragment'а

Господа, вопрос скорее всего простой, но при гуглении кидает на "кастомные анимации"Есть BottomSheetDialogFragment который открывается и скрывается...

168
Зачем нужен JNDI, если есть Spring IoC container (dependency lookup)?

Зачем нужен JNDI, если есть Spring IoC container (dependency lookup)?

Пишут, что JNDI нужен для того, чтобы мы могли из Java-кода получить Java-объект из некоторой "Регистратуры" объектов по имени объекта, привязанного...

231
Java: Jlabel не отображается

Java: Jlabel не отображается

Изучаю библиотеку java awt и java swing(И вообще всю Java) и столкнулся с проблемой JLabel не отображается на экранеВроде все процессы инициализированы

184
Поочередная запись потоками в файл

Поочередная запись потоками в файл

Всем привет, есть задание: На вход передается целое число, больше 0, кратное 2 (n)Создается два потока, работающих параллельно, каждый поток...

140