我正在阅读别人的代码。以下是它的主要内容。
一个类使用GZIPInputStream和GZIPOutputStream来压缩和解压缩文件。
下面是压缩过程中的一部分代码。 inputfile和outputFile是File类的实例。
现在,解压缩过程中正在发生以下事情。
一个类使用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
,可能的原因是什么?这让我感到困惑。
除非有充分的理由,否则我认为将它们改为一致以避免未来的混淆是一个好主意。这样做是否明智?