这是在.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. 阅读XML与阅读CSV文件java
- 4. 熊猫阅读.csv文件
- 5. 的iOS阅读csv文件
- 6. 阅读csv文件c#
- 7. 阅读CSV文件WinPython
- 8. 问题阅读csv文件
- 9. 阅读并同csv文件
- 10. 如何阅读.csv文件?
- 11. 阅读大文件
- 12. 在Java中读取大型CSV文件
- 13. 读取R中的大型csv文件
- 14. 在PHP中读取大型CSV文件
- 15. Android阅读大文件
- 16. 大文件逐行阅读
- 17. 双读取大CSV文件
- 18. PHP阅读CSV文件的问题
- 19. 阅读CSV文件,并生成字典
- 20. 阅读CSV文件,并创建字典
- 21. 阅读csv文件时遇到问题
- 22. Python。如何阅读多个.csv文件?
- 23. 阅读.csv ANSI文件并写入mysql
- 24. 阅读CSV文件中的JavaScript
- 25. Python阅读列中的csv文件?
- 26. 如何阅读CSV数据文件?
- 27. 阅读CSV文件并创建字典?
- 28. 阅读csv文件问题python
- 29. 阅读服务器端CSV文件
- 30. 阅读csv文件与filehelpers错误
我真诚地希望你[不滚动自己的CSV分析器(http://secretgeek.net/csv_trouble.asp)。 – 2010-09-17 14:19:55