我想要执行一个程序,因为它运行读取它的输出并将输出输出到一个压缩文件.程序的输出可能非常大,所以想法是不要在内存中保留太多 - 只是在我得到它时将它发送到zip.
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.
阅读下一行.
完成后关闭你的溪流.根据您的需要将其包装在一个方法中.