【发布时间】:2012-12-14 14:06:34
【问题描述】:
在一个 java 程序中,我正在像这样压缩一个 InputStream:
ChannelBufferOutputStream outputStream = new ChannelBufferOutputStream(ChannelBuffers.dynamicBuffer(BUFFER_SIZE));
GZIPOutputStream compressedOutputStream = new GZIPOutputStream(outputStream);
try {
IOUtils.copy(inputStream, compressedOutputStream);
} finally {
// this should print the byte size after compression
System.out.println(outputStream.writtenBytes());
}
我正在使用 json 文件测试此代码,该文件在磁盘上未压缩约 31.000 字节,压缩后约 7.000 字节。将包装未压缩的 json 文件的 InputStream 发送到上面的代码, outputStream.writtenBytes() 返回 10,这表明它压缩到只有 10 个字节。这似乎是错误的,所以我想知道问题出在哪里。 ChannelBufferOutputStream javadoc 说:返回到目前为止此流写入的字节数。所以它应该可以工作。
【问题讨论】:
标签: java netty apache-commons java-io apache-commons-io