2011-06-30 106 views
1

我試圖簡單地讀取文件的全部內容並將其放入數組中(元素應該是行,所以array [2]會得到第三行等)。讀取文件並將內容放入數組中

我想:

originalFileContentArray = new string[] { fileReader.ReadToEnd() }; 

我相信這是一個好主意,因爲一切我發現這個是大循環來逐行讀取文件中的行,並將它推到一個數組...

我的想法存在的問題是,行不會自動分隔,所以數組只包含一個包含整個內容的大元素。

關於如何正確地將內容分隔成多個元素的任何想法?

謝謝!

回答

2

使用String.SplitFile.ReadAllLines()

0
originalFileContentArray = fileReader.ReadToEnd().Split(new char[] {'\r'}); 
+0

這將使具有行'\ N'作爲第一個字符,除了第一行。該文件的最後一行只包含一個'\ n'字符。你可以通過分割'\ r \ n'來做到這一點,但使用File.ReadAllLines是一個更清晰的解決方案。 –

-1

我會從像這樣的文本文件創建一個數組(每一行是一個元素) :

string[] lines = File.ReadAllLines(@"c:\users\" + Environment.UserName + @"\desktop\data.txt"); 

然後通過推出它就像這樣:

foreach (string line in lines) { // manipulate data here } 

讓我知道,如果這有助於

+0

與@BrokenGlass的答案相比,您添加的所有內容都是製作文件路徑的一種非常糟糕的方式。 –

+0

@本Voigt - 感謝您的洞察力。 –

1

如果你真的需要所有內存中的行,這樣就可以操縱它們,然後File.ReadAllLines是要走的路。但如果你只是需要處理的文件中的行由行,然後使用File.ReadLines

foreach (string line in File.ReadLines(filename)) 
{ 
    // process this line 
} 
相關問題