Я использовал FileChannel
и FileInputStream
для простого копирования файлов с File
fromFile в File
toFile.NIO GZIP сжатие и копирование файлов
Код в основном так:
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();
или
source = new GZIPDecompressInputStream(new FileInputStream(fromFile)).getChannel();
и все остальные кода остаются неизменными. Есть ли у вас какие-либо предложения по наиболее чистым решениям?
Спасибо ..
Вы используете Java 7+? – fge
Да Я использую Java 7+ – bozeng
возможный дубликат [Чтение файла GZIP из FileChannel (Java NIO)] (http://stackoverflow.com/questions/3335969/reading-a-gzip-file-from-a-filechannel -java-nio) –