【发布时间】:2014-04-05 00:14:47
【问题描述】:
我正在使用encoding/csv 来读取和解析一个非常大的 .csv 文件。
我需要随机选择行并通过一些测试。
我目前的解决方案是像
reader := csv.NewReader(file)
lines, err := reader.ReadAll()
然后从lines中随机选择行
明显的问题是阅读整个内容需要很长时间,而且我需要大量内存。
问题:
我的问题是,encoding/csv 给了我一个io/reader 有没有办法使用它来读取随机行而不是一次加载整个内容?
更多地了解io/reader,而不是一个实际问题,这更像是一种好奇心,因为最终很可能读取一次并在内存中访问它会更有效,这样可以继续在磁盘。
【问题讨论】:
标签: go random-access