Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中压缩内容而不使用文件I/O_Java_Compression - Fatal编程技术网

在Java中压缩内容而不使用文件I/O

在Java中压缩内容而不使用文件I/O,java,compression,Java,Compression,我希望在不进行任何文件I/O的情况下执行CPU评测的重复压缩任务,但严格读取字节流。我想用Java(我的基准测试的目标)实现这一点 有没有人建议怎么做? 我使用了使用ZipPentry的ZipAPI,但ZipPentry会触发文件I/O 如有任何建议或代码示例,我们将不胜感激 您可以使用ByteArrayInputStream和ByteArrayOutputStream,而不是使用FileInputStream或FileOutputStream 我使用了使用ZipPentry的ZipAPI,但Z

我希望在不进行任何文件I/O的情况下执行CPU评测的重复压缩任务,但严格读取字节流。我想用Java(我的基准测试的目标)实现这一点

有没有人建议怎么做? 我使用了使用ZipPentry的ZipAPI,但ZipPentry会触发文件I/O


如有任何建议或代码示例,我们将不胜感激

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

我使用了使用ZipPentry的ZipAPI,但ZipPentry会触发文件I/O

如果您使用
ByteArrayOutputStream
作为底层输出,我不希望它:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zipStream = new ZipOutputStream(baos);
... write to zipStream ...
同样地,将字节数组包装起来,以便在
ByteArrayInputStream
中读取数据


当然,如果您想使用zip压缩格式创建内容,
zipoutpStream
是合适的,它适合(或至少可以处理:)多个文件。对于单个数据流,您可能希望使用或再次使用
ByteArrayOutputStream
作为底层输出。

我发现这个示例使用gziOutputStream可能就足够了。谢谢。@Edmon:不要从代码中复制异常处理“技术”。您应该为
close()
调用使用
finally
块,并且可能只是声明您的方法可以抛出
IOException