2
这是我的代码: (压缩文件包含文本文件)如何使用NIO从gzip文本文件逐行读取文本数据?
ByteBuffer buffer = ByteBuffer.allocateDirect(8192);
try {
ReadableByteChannel gzc = Channels.newChannel(new GZIPInputStream(Channels.newInputStream(Channels.newChannel(new FileInputStream("C:\\temp\\111.gz")))));
gzc.read(buffer);
}
值得一提的是,使用普通IO不太可能更简单或更高效。如果你不得不支持只需要NIO的库,我只会这样做。 – 2012-02-22 12:53:38
性能增益如何? – omrid 2012-02-22 13:01:32
效率,我的意思是性能。主要的瓶颈是压缩/解压缩,使用额外的层/包装可能会使其稍微慢一点(虽然相差不大)。使用直接的ByteBuffer可以减少系统周围副本的数量。 – 2012-02-22 13:03:29