我有一个压缩的csv文件,将定期处理3-4倍的一天。尺寸可能在500至1000兆字节之间。
我想逐行阅读所包含的csv行。因此,最好先解压缩文件,然后读取它,还是我也可以使用java流来读取文件呢?
有什么优势(性能)吗?从一种方法到另一种方法?
发布于 2014-01-15 22:03:23
对于计算机来说,最慢的活动之一是硬盘访问(至少直到SSD变得更常见为止)。因此,解压缩它,然后读取解压缩的文件将显着地慢。
直接从ZipInputStream读取行将获得更好的性能。
发布于 2014-01-15 21:58:35
在我看来,解压缩更快,也可能更简单。如果性能很重要,请测试这两种方法。如果磁盘空间是有限的
发布于 2014-01-15 22:13:50
拉链和解压都是时间昂贵的。
如果您可以在不解压缩的情况下访问.csv文件(我不知道您的.csv文件在压缩状态下是否很难读取),那么您可以将.CSV文件作为一个RandomAccessFile打开,只处理特定的行而不是整个文件。
这可能适用,也可能不适用,但至少它将大大提高性能,因为您只需要从需要的地方读取/写入数据。
https://stackoverflow.com/questions/21149081
复制相似问题