我已經爲自己編寫了一個小程序,用於讀取相當大的日誌文件(只是純文本和數字)並將它們寫入文本框(notepadish thingy)。C#打開文件
我使用這種方法讀取文件,雖然它做的竅門,我想知道是否有一些方法來優化它,如果當前正在讀取的文件被鎖定,而不會被寫入而讀取它(因爲它的日誌不斷更新的文件對我不利)。
private void ReadFile(string path)
{
using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader reader = new StreamReader(file))
{
StringBuilder sb = new StringBuilder();
string r = reader.ReadLine();
while (r != null)
{
sb.Append(r);
sb.Append(Environment.NewLine);
r = reader.ReadLine();
}
textBox.Text = sb.ToString();
reader.Close();
}
}
['File.ReadAllText'](http://msdn.microsoft.com/en-us/library/system.io.file.readalltext.aspx)? – 2013-04-24 14:39:24
@UweKeim如果文件正在被另一個進程寫入,它將不起作用。 OP的代碼看起來很好。 – I4V 2013-04-24 14:40:20
您可以用'sb.AppendLine'調用替換兩個'Append'調用。 – 2013-04-24 14:43:42