3

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

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

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

4

2 回答 2

4

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

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

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

同样,包装您的字节数组ByteArrayInputStream.

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

于 2012-09-28T14:38:10.613 回答
1

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

于 2012-09-28T14:38:00.177 回答