I'm reading somebody else's code. Here's the gist of it.
A class compresses and decompresses files using GZIPInputStream and GZIPOutputStream.
Here's a snippet of what goes on during compression. inputFile
and outputFile
are instances of the class 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
...
Now, here's what's going on during decompression.
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
...
What's a possible reason the original programmer chose FileOutputStream
during compression and ByteArrayOutputStream
during decompression? It confuses me.
Unless there's a good reason, I think I'm changing them to be consistant to avoid future confusion. Is this a good idea?