我需要读取/解压缩给定FileChannel的.gz文件。
我已经尝试过使用GZIPInputStream提取GZIP存档,但这不会占用FileChannel。我没有访问FileChannel所来自的原始FileInputStream的权限。
如果有人可以告诉我一种从FileChannel读取GZIP的好方法(或至少任何方法),我将不胜感激。
改编自有关 Oracle forums的问题。
最佳答案
您可以在FileChannel周围获得包装的InputStream:
FileChannel fc = ...
GZIPInputStream gis = new GZIPInputStream(Channels.newInputStream(fc));
Channels在Java SE中。