2011-10-10 64 views
0

我有一個讀取文件的方法。這個文件大約有30000行。然而,當我將它讀入一個數組時,我的數組中會得到一個隨機的長度。我已經看到了低至6000文本解析選項卡分隔文件

我用兩個

string[] lines = System.IO.File.ReadAllLines(@"C:\out\qqqqq.txt");

System.IO.StreamReader file = new System.IO.StreamReader(@"C:\out\qqqqq.txt");

(以及使用計數器。)

但我得到相同結果。我可以在Excel中看到這些太小。

+1

你可以在記事本中打開文件,進入最後,看看它告訴你有多少行嗎? –

+0

文件的來源是什麼?你有沒有嘗試File.ReadAllLines(@「C:\ out \ qqqqq.txt」,System.Text.Encoding.Unicode)? – Elisha

+0

記事本有一個行數? –

回答

1

如果文件中的行尾不一致的(有時\n,有時\r\n有時\r),那麼你可以嘗試讀取整個文件作爲一個字符串和分裂它自己:

string file = System.IO.File.ReadAllText(@"C:\out\qqqqq.txt"); 
var lines = file.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); 

對於大文件,這是低效率的,因爲它需要讀取整個文件 - 使用StreamReader,您可以在處理它時逐行讀取文件。如果性能是一個問題,那麼你可以編寫一個簡單的工具,首先糾正行結束。

+0

這也將刪除合法的空白行。 –

+0

@JimMischel - 這是真的,但如果結局不一致,那麼不清楚什麼是合法的空白行。例如,'\ r \ n'是空行還是不行? –

相關問題