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