【发布时间】:2010-09-13 08:26:37
【问题描述】:
我想要执行一个程序,并在它运行时读取它的输出并将输出输出到一个压缩文件中。程序的输出可能非常大,因此我们的想法是不要在内存中保存太多 - 只是在我得到它时将其发送到 zip。
【问题讨论】:
标签: java zip inputstream
我想要执行一个程序,并在它运行时读取它的输出并将输出输出到一个压缩文件中。程序的输出可能非常大,因此我们的想法是不要在内存中保存太多 - 只是在我得到它时将其发送到 zip。
【问题讨论】:
标签: java zip inputstream
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 读取到您的字节缓冲区,并记住计数。count 不是-1,但将该字节byffer 写入您的zipStream。完成后关闭您的信息流。用你认为合适的方法包装它。
【讨论】: