архиве, перезаписывается старый.
for (File file : files) {
try (ZipOutputStream zout = new ZipOutputStream(new FileOutputStream("output.zip"));
FileInputStream fis = new FileInputStream(file.getPath())) {
ZipEntry entry1 = new ZipEntry(file.getName());
zout.putNextEntry(entry1);
byte[] buffer = new byte[fis.available()];
int read;
do {
read = fis.read(buffer);
zout.write(buffer, 0, read);
} while (read > 0);
zout.closeEntry();
zout.write(buffer);
zout.closeEntry();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
По идее я закрываю поток и в новом проходе должен работать с новым outputstream, не трогая старый, так?
Если я все правильно понял, ты просто пишешь в один и тот же файл - добавь нейминг "output 1, output2...." И будут разные файлы. Или разберись как дозаписывать в файл - тогда нужно проверить есть ли файл, если есть, дописать в него
Так это типа один зипфайл, внутри которого должны быть много других файлов если я верно его понял
так это не файл а архив, в архиве же может быть много файлов?) Вот я и пытаюсь записать в архив списком) только вот в Zip как в FileOutputStream нет конфига append
Обсуждают сегодня