1

我正在使用FileChannel并进行从fromFile到toFileFileInputStream的简单文件复制。FileFile

代码基本上是这样的:

source = new FileInputStream(fromFile).getChannel();
destination = new FileOutputStream(toFile, false).getChannel(); // overwrite
destination.transferFrom(source, 0, source.size());

wherefromFiletoFile是正确的File对象。现在,我不想直接从复制,而是fromFile想使用 GZIP(在 Java 库中找到)压缩其内容,然后复制到toFile. 同样反过来,当我从 转回时toFile,我也想解压缩它。

我想知道有没有一种简单的方法

source = new GZIPCompressInputStream(new FileInputStream(fromFile)).getChannel();

或者

source = new GZIPDecompressInputStream(new FileInputStream(fromFile)).getChannel();

并且所有其余代码保持不变。你对这个最干净的解决方案有什么建议吗?

谢谢..

4

1 回答 1

0

你可以像这样包装你FileInputStreamGZIPInputStream

InputStream input = new GZIPInputStream(yourCompressedInput);

对于写入时的压缩,您应该使用 GZIPOutputStream。

祝你好运。

于 2015-03-31T10:08:48.817 回答