1

私はFileChannelandを使用して、fromFile からtoFile にFileInputStream単純なファイルをコピーしていました。FileFile

コードは基本的に次のようになります。

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

とは適切なfromFileオブジェクトです。ここで、から直接コピーするのではなく、GZIP (Java ライブラリにある) を使用してコンテンツを圧縮し、. また逆に、 から転送するときも同様に解凍したいと思います。toFileFilefromFiletoFiletoFile

次のような簡単な方法があるのだろうかと思っていました

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

また

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

残りのコードはすべて変更されません。これに対する最もクリーンな解決策について何か提案はありますか?

ありがとう..

4

1 に答える 1

0

FileInputStream次のGZIPInputStreamようにラップできます。

InputStream input = new GZIPInputStream(yourCompressedInput);

書き込み時の圧縮には、GZIPOutputStream を使用する必要があります。

幸運を。

于 2015-03-31T10:08:48.817 に答える