如何在写入文件时压缩文件?
有没有人知道如何压缩你写的流? 我试图避免将文件写入磁盘,并且想知道我是否可以在将数据写入流时压缩数据。
这背后的用例是原始文件将非常大,我们希望避免将整个解压缩到磁盘上。
我想你会对ZipOutputStream感兴趣。 您可以写入该流,然后将其写入压缩文件。
另外,请查看本教程,了解如何使用Java中的压缩(压缩)文件 。 以下是该教程的片段,可能是一个有用的插图:
BufferedInputStream origin = null; FileOutputStream dest = new FileOutputStream("c:\\zip\\myfigs.zip"); ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest)); //out.setMethod(ZipOutputStream.DEFLATED); byte data[] = new byte[BUFFER]; // get a list of files from current directory File f = new File("."); String files[] = f.list(); for (int i=0; i
将另一个OutputStream
包装在ZipOutputStream
(或GZIPOutputStream
)中,并调用ZipOutputStream
上的write方法。
我之前在webapp中做过这个。 我得到了对servlet OutputStream的引用,然后将其提供给ZipOutputStream
。 然后我就拉链了。 压缩文件已提供给客户端浏览器。 简单。
这通常用于使用filter的Web应用程序: