Я читаю чужой код.Вот суть этого.
Класс сжимает и распаковывает файлы, используя 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
во время распаковки?Это смущает меня.
Если нет веских причин, я думаю, что я изменяю их, чтобы они были последовательными, чтобы избежать путаницы в будущем.Это хорошая идея?