我需要读取/解压缩给定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中。

10-08 17:54