FileOutputStream vs ByteArrayOutputStream

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?

9
задан Abhinav Sarkar 3 January 2011 в 18:13
поделиться