2011-02-10 121 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的任何事情,通常可以确保清理资源。