【发布时间】:2012-10-05 04:44:16
【问题描述】:
我有一个控制台应用程序,我需要在其中读取一些 .csv 文件。 我没有问题阅读前两个非常轻的(每个大约 10 000 条记录)。 但是当它开始读取第三个(更重,大约 220 000 条记录)时,我一直有错误“OutOfMemoryException 未处理:mscorlib.dll 中发生'System.OutOfMemoryException' 类型的未处理异常”
我不明白它对于前两个 csv 是否工作正常...
这是我读取 csv 文件的函数,在拆分时出现错误:
Function FileToString(filePath As String) As String()
Dim myfile As New StreamReader(filePath, System.Text.Encoding.GetEncoding("iso-8859-1"))
Dim allData As String = myfile.ReadToEnd()
Dim rows As String() = allData.Split(vbCr.ToCharArray)
Return rows
End Function
我怎样才能防止这种情况发生?有没有更好的读取csv的方法? 谢谢
【问题讨论】:
-
不要一次读取整个文件。
-
您为什么要自己解析 CSV 而不是使用众多 CSV 库之一?
标签: .net vb.net csv out-of-memory