這是在.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