这是在.NET中读取大型csv文件的最高性能方式? 使用FileStream?或另一类? 谢谢!阅读大型csv文件
2
A
回答
1
3
您可以使用FileInfo.OpenText
返回的StreamReader
:
Dim file As New FileInfo("path\to\file")
Using reader As StreamReader = file.OpenText()
While Not reader.EndOfStream
Dim nextLine As String = reader.ReadLine()
ProcessCsvLine(nextLine)
End While
End Using
1
这样做的最有效的方法是利用递延执行的LINQ。您可以创建一个简单的Linq-To-Text函数,该函数一次只读取一行,并对其进行处理,然后继续。由于该文件非常大,因此这非常有用。
我会停止使用StreamReader类的ReadBlock或ReadBlock或ReadToEnd方法,因为它们倾向于一次读取多行或者甚至读取文件中的所有行。与一次读取一行相比,这会消耗更多的内存。
public static IEnumerable<string> Lines(this StreamReader source)
{
String line;
if (source == null)
throw new ArgumentNullException("source");
while ((line = source.ReadLine()) != null)
{
yield return line;
}
}
请注意,该函数是StreamReader类的扩展方法。这意味着它可以作如下用途:
class Program
{
static void Main(string[] args)
{
using(StreamReader streamReader = new StreamReader("TextFile.txt"))
{
var tokens = from line in streamReader.Lines()
let items = line.Split(',')
select String.Format("{0}{1}{2}",
items[1].PadRight(16),
items[2].PadRight(16),
items[3].PadRight(16));
}
}
}
+0
当你可以在你的第二个代码块中简单地使用'While(line = streamReader.ReadLine()!= null)'时,这看起来就像很多典礼。 – 2010-09-17 15:06:42
1
0
相关问题
- 1. 阅读大型CSV文件
- 2. 阅读csv文件
- 3. 如何阅读大的CSV文件?
- 4. 阅读XML与阅读CSV文件java
- 5. 阅读,格式,然后编写大型CSV文件
- 6. 如何上传打开并阅读大型(20 MB)csv文件?
- 7. 的iOS阅读csv文件
- 8. 问题阅读csv文件
- 9. python阅读csv文件
- 10. 阅读CSV文件时NumberFormatException
- 11. 阅读CSV文件的LINQ
- 12. 熊猫阅读.csv文件
- 13. 阅读并同csv文件
- 14. 阅读CSV文件WinPython
- 15. 阅读CSV文件在PHP
- 16. 阅读csv文件延迟
- 17. 阅读csv文件c#
- 18. 如何阅读.csv文件?
- 19. 阅读大文件
- 20. 读取R中的大型csv文件
- 21. 在Java中读取大型CSV文件
- 22. 将大型csv文件读入R
- 23. 在PHP中读取大型CSV文件
- 24. 阅读PHP中的大csv文件,无法读取
- 25. 阅读大文本文件
- 26. python,寻找,告诉,阅读。从巨型csv文件读取行
- 27. Android阅读大文件
- 28. 阅读大转储文件
- 29. 大文件逐行阅读
- 30. 双读取大CSV文件
我真诚地希望你[不滚动自己的CSV分析器(http://secretgeek.net/csv_trouble.asp)。 – 2010-09-17 14:19:55