在没有文件I / O的情况下压缩Java中的内容

时间:2012-09-28 14:35:27

标签: java compression

我想在不进行任何文件I / O但严格读取字节流的情况下执行CPU分析的重复压缩任务。我想用Java(我的基准测试的目标)来做这个。

有没有人建议如何做到这一点? 我使用了ZipEntry的Zip API,但ZipEntry触发了文件I / O.

我们非常感谢您提供任何建议或代码示例。

2 个答案:

答案 0 :(得分:4)

  

我使用了ZipEntry的Zip API,但ZipEntry触发了文件I / O.

如果您使用ByteArrayOutputStream作为基础输出,我不会指望它:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipStream = new ZipOutputStream(baos);
... write to zipStream ...

同样将{em>读取数据的字节数组包装在ByteArrayInputStream中。

当然,如果您想使用zip压缩格式创建内容,ZipOutputStream是合适的,这对于(或至少处理:)多个文件是有益的。对于单个数据流,您可能需要再次使用DeflaterOutputStreamGZIPOutputStream作为基础输出。

答案 1 :(得分:1)

您可以使用ByteArrayInputStream和ByteArrayOutputStream,而不是使用FileInputStream或FileOutputStream。