2013-05-05 90 views
0

我想使用流編寫器類在文本文件中編寫一個簡單的字符串,但它似乎不起作用(並且沒有錯誤)。這裏是我的代碼:?無法使用流寫入器的'.writeline'方法將字符串寫入文件

StreamWriter test = new StreamWriter("mytext.txt", true); 

// used the below code too to create the file. It didn't work either! 
//StreamWriter test = File.CreateText("mytext.txt"); 
test.WriteLine("hello"); 

當我運行這段代碼,什麼都不會被添加到文本文件我有什麼錯(PS:我用的完整路徑文件名太多,但它沒有工作!)

回答

3
using(StreamWriter test = new StreamWriter("mytext.txt", true)){ 
     test.WriteLine("hello"); 
} 

問題是,你流的緩衝區沒有刷新......你既可以調用flush()或者確保它是正確迪由使用塊...

+0

問題是我不想在創建它之後立即寫入我的文件!我不能使用'使用塊',因爲我的文件工作超出了'使用塊'。如果我在我的代碼結束時嘗試'text.Flush()',它會面臨一個錯誤,說該文件正在被另一個進程使用。現在要做什麼? – roostaamir 2013-05-05 13:55:09

+0

你沒有顯示該問題的代碼...如果你想保持流打開,確定...但你得到的錯誤表明,你同時打開兩個或更多的流到同一個文件,或者你沒有正確處理第一個 – DarkSquirrel42 2013-05-05 14:52:02

1

您必須關閉連接才能寫入文件。
最佳做法是簡單地使用using

創建文件後更新文件沒有問題。但你必須時刻關注這個流。

 using (StreamWriter test = new StreamWriter("mytext.txt", true)) 
     { 
      test.WriteLine("File created"); 
     } 

     //Do Stuff... 

     using (StreamWriter test = new StreamWriter("mytext.txt", true)) 
     { 
      test.WriteLine("hello"); 
     } 
0

您是否在另一個程序如記事本++中打開該文件?