他の人のコードを読んでいます。ここにそれの要点があります。FileOutputStreamとByteArrayOutputStream
クラスは、GZIPInputStreamおよびGZIPOutputStreamを使用してファイルを圧縮および解凍します。
ここでは、圧縮中に起こることのスニペットを示します。 inputFile
およびoutputFile
は、クラスFile
のインスタンスです。
FileInputStream fis = new FileInputStream(inputFile);
GZIPOutputStream gzos = new GZIPOutputStream(new FileOutputStream(outputFile));
//the following function copies an input stream to an output stream
IOUtils.copy(fis,gzos);
//outputFile is the compressed file
...
次に、解凍中の処理について説明します。
GZIPInputStream gzis = new GZIPInputStream(new FileInputStream(inputFile));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//copies input stream to output stream
IOUtils.copy(gzis,baos);
//this method does as its name suggests
FileUtils.writeByteArrayToFile(outputFile, baos.toByteArray());
//outputFile is the decompressed file
...
元プログラマは解凍時の圧縮時FileOutputStream
とByteArrayOutputStream
を選んだ可能性のある理由は何ですか?それは私を混乱させます。
正当な理由がない限り、将来の混乱を避けるために一貫性があるように変更していると思います。これは良いアイデアですか?
IOUtilsとFileUtilsはプロプライエタリであるか、commons-ioのようなlibからですか? – sblundy
@sblundy、それらはcommons-ioのようなライブラリからのものです。 – Russell