На самом деле я пытался заархивировать файлы с помощью zipOutputStream, но каждый раз он не может правильно заархивировать файлы.Он застревает в определенном файле большего размера.Мой код выглядит следующим образом:
byte[] buf = new byte[1600*1024];
long totalBytes = 0;
if(flag){
FileInputStream fileStream = new FileInputStream(absoluteFileName);
zip.putNextEntry(new ZipEntry(fileName));
while ((len = fileStream.read(buf)) > 0) {
System.out.println("bytes read = "+len);
totalBytes += len;
System.out.println("totalBytes = "+totalBytes);
zip.write(buf, 0, len);
}
}
Вывод выглядит следующим образом:
bytes read = 163840
Total bytes = 163840
bytes read = 163840
Total bytes = 327680
bytes read = 7940
Total Bytes = 335620
Почему-то он не может читать дальше.Размер файла составляет 336 КБ.Итак, я считаю, что общее количество прочитанных байтов равно размеру файла.Но при попытке открыть zip-файл я получаю сообщение об ошибке, и извлеченный файл не завершен.Один извлеченный из почтового индекса - только 2468 строк, в то время как оригинальный файл - больше чем 3500 строк.
Пожалуйста, помогите.Я застрял в этом в течение последних 4 дней.