我有一个压缩的csv文件,每天定期处理3-4次。大小可能在500-1000mb之间。
我想逐行阅读包含的csv行。因此,首先解压缩文件然后再读取它是否更好?或者我是否可以使用java Zip流来读取文件?
一种方法的优势(性能?)是否优于另一种方法?
答案 0 :(得分:1)
计算机最慢的活动之一是硬盘访问(至少在SSD更常见之前)。因此解压缩它然后读取解压缩的文件会明显变慢。
您可以直接从ZipInputStream获得更好的性能读取线。
答案 1 :(得分:0)
在我看来,解压缩更快,可能更简单。如果性能很重要,请测试两种方法。如果磁盘空间有限,而现在情况并非如此,那么你别无选择,只能在拉链内阅读。
答案 2 :(得分:0)
压缩和解压缩都会非常耗时。
如果可以在不解压缩的情况下访问您的.csv文件(我不知道您的.csv文件是否难以在其压缩状态下读取),那么您可以将.CSV文件作为RandomAccessFile打开以仅与特定行一起使用而不是整个文件。
这可能适用也可能不适用,但至少可以大大提高性能,因为您只需从您需要的地方读/写数据。