逐行读取zip文件,还是首先解压缩?

时间:2014-01-15 21:56:37

标签: java zip

我有一个压缩的csv文件,每天定期处理3-4次。大小可能在500-1000mb之间。

我想逐行阅读包含的csv行。因此,首先解压缩文件然后再读取它是否更好?或者我是否可以使用java Zip流来读取文件?

一种方法的优势(性能?)是否优于另一种方法?

3 个答案:

答案 0 :(得分:1)

计算机最慢的活动之一是硬盘访问(至少在SSD更常见之前)。因此解压缩它然后读取解压缩的文件会明显变慢。

您可以直接从ZipInputStream获得更好的性能读取线。

答案 1 :(得分:0)

在我看来,解压缩更快,可能更简单。如果性能很重要,请测试两种方法。如果磁盘空间有限,而现在情况并非如此,那么你别无选择,只能在拉链内阅读。

答案 2 :(得分:0)

压缩和解压缩都会非常耗时。

如果可以在不解压缩的情况下访问您的.csv文件(我不知道您的.csv文件是否难以在其压缩状态下读取),那么您可以将.CSV文件作为RandomAccessFile打开以仅与特定行一起使用而不是整个文件。

这可能适用也可能不适用,但至少可以大大提高性能,因为您只需从您需要的地方读/写数据。

相关问题