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

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

有没有人有建议怎么做?
我使用了ZipEntry的Zip API,但ZipEntry触发了文件I / O.

任何建议或代码示例都非常感谢.

解决方法:

I used Zip API that uses ZipEntry but ZipEntry triggers file I/O.

如果你使用ByteArrayOutputStream作为底层输出,我不会指望它:

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

同样包装你的字节数组以从ByteArrayInputStream中读取数据.

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

上一篇:Java / Hibernate:解压缩压缩结果


下一篇:linux – 在文本文件中重新排序行以获得更好的压缩比