ZipOutputStream targetStream = new ZipOutputStream(fileToSaveTo);
ZipEntry entry = new ZipEntry(nameOfFileInZipFile);
targetStream.putNextEntry(entry);
byte[] dataBlock = new byte[1024];
int count = inputStream.read(dataBlock, 0, 1024);
while (count != -1) {
targetStream.write(dataBlock, 0, count);
count = inputStream.read(dataBlock, 0, 1024);
}
Другими словами:
- Вы создаете ZipOutputStream, давая ему файл, в который хотите записать.
Вы создаете ZipEntry, который составляет файл в этом zip-файле.
т.е. когда вы открываете myFile.zip и там есть 3 файла, каждый файл является ZipEntry.
Вы помещаете этот zipEntry в свой ZipOutputStream
- Создайте байтовый буфер для чтения ваших данных.
- Чтение из вашего inputStream в ваш байтовый буфер и запоминание количества.
- Пока счетчик не равен -1, запишите этот байтовый буфер в zipStream.
- Прочитайте следующую строку.
Закрывайте свои потоки, когда закончите. Заверните его так, как считаете нужным.