2011-02-10 154 views
2

我試圖從文本文件加載一些東西,做一些處理並將它們寫入到C#中的新文本文件。C#寫入文件問題

請各位看看下面我的代碼:

似乎一切都工作正常,我可以加載的東西,對其進行編輯,並將它們保存到文本文件中。然而,在保存它們的過程中,由於某種原因,它會停止將它們保存到文本文件中,while循環運行時,我可以知道這一點,因爲我也在控制檯中記錄了一些東西,並且一切都很順利。但在某些點(如80行或其他東西)之後,它會停止將新行添加到文件中。

有什麼想法?

在此先感謝

 StreamReader SR; 
     StreamWriter SW; 
     string S; 
     double temp1; 
     double temp2; 

     SR = File.OpenText("C:\...Address"); 
     SW = File.CreateText("C:\...Address");    

     S = SR.ReadLine(); 

     while (S!=null) 
     { 

      string[] words = S.Split(' '); 

      //editing stuff 

      SW.WriteLine("{0} {1} {2}", temp1, temp2, words[2]); 
      Console.WriteLine("{0} {1} {2}", temp1, temp2, words[2]); 
      S= SR.ReadLine(); 
     } 
+3

嗨,歡迎來到Stack Overflow。程序是否完成,只是輸出文件不完整?或者它掛起?或者它可能會與異常崩潰? – 2011-02-10 13:23:51

+5

`SW`和`SR`指向同一個文件嗎? – 2011-02-10 13:24:02

回答

4

可能存在兩個問題:

  • 目前尚不清楚是否有參與或兩個一個文件。你會發現從你正在寫的同一個文件中讀取
  • 難以讀懂,你沒有關閉作者,這意味着它不會被刷新。這可能是問題 - 它肯定會解釋症狀。

第二子彈最好用using語句進行處理:

using (TextWriter writer = File.CreateText(...)) 
{ 
    // Code here 
} // writer will automatically be disposed here 

你應該做同樣的事情的讀者也是如此。就數據丟失而言,它不那麼重要,但通常情況下,您應該處置任何實施IDisposable的任何事情,通常可以確保清理資源。