Я использовал FileChannel
и FileInputStream
для простого копирования файлов из File
fromFile в File
toFile.
Код в основном такой:
source = new FileInputStream(fromFile).getChannel();
destination = new FileOutputStream(toFile, false).getChannel(); // overwrite
destination.transferFrom(source, 0, source.size());
где fromFile
и toFile
являются правильными File
объектами. Теперь, вместо прямого копирования из fromFile
, я хотел сжать его содержимое с помощью GZIP (есть в библиотеках Java), а затем скопировать в toFile
. И наоборот, когда я возвращаюсь с toFile
, я также хотел бы распаковать его.
Мне было интересно, есть ли простой способ, например
source = new GZIPCompressInputStream(new FileInputStream(fromFile)).getChannel();
or
source = new GZIPDecompressInputStream(new FileInputStream(fromFile)).getChannel();
и весь остальной код остается без изменений. Есть ли у вас какие-либо предложения по самому чистому решению этой проблемы?
Спасибо..