gpt4 book ai didi

c# - 使用 c# 解析大型 csv 文件中前两列的快速/低内存方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:47 26 4
gpt4 key购买 nike

我正在解析一个大的 csv 文件——大约 500 兆(很多行,很多列)。我只需要前两列(直到每行的第二个逗号)。另外,多个线程需要同时访问这个文件,所以我不能使用独占锁。

解决此问题的最快/最少内存消耗的方法是什么?我应该看哪些类(class)/方法?我认为我应该尽可能保持低水平 - 逐字符逐行阅读?

也许这是一种允许同时访问的方式?

using ( var filestream = new FileStream( filePath , FileMode.Open , FileAccess.Read , FileShare.Read ) )
{
using ( var reader = new StreamReader( filestream ) )
{
...
}
}

编辑
决定去看看http://www.codeproject.com/KB/database/CsvReader.aspx这似乎让我能够只阅读两列然后跳到下一行。他们还有一些基准测试显示出快速的性能和低内存配置文件。

最佳答案

如果你想要低内存,你可能会按行使用 StreamReader 和 ReadLine。

在前几天的类似案例中,我能够跳过一个 500 MB 文件中的前 20,000,000 行,并在大约 7 秒内为接下来的 1,000,000 行构建一个字符串(使用 StringBuilder)。

关于c# - 使用 c# 解析大型 csv 文件中前两列的快速/低内存方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6283161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com