2011-02-10 18 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

こんにちは。プログラムが完了したかどうか、出力ファイルが完全ではないことだけですか?それともハングアップしますか?それとも例外が発生してクラッシュするのでしょうか? –

+5

'SW'と' SR'は同じファイルを指していますか? –

答えて

4

二つの可能な問題:

  • または2関与する1つのファイルがありますかどうかは明らかではありません。あなたが書いているのと同じファイルから読むのは難しいと感じるでしょう。
  • あなたはライターを閉じていません。つまり、フラッシュされません。それはよく問題であるかもしれません - それは確かに症状を説明するでしょう。

第二弾が最高usingステートメントで処理されています。あなたにも、読者のために同じことを行う必要があります

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

。データ損失の点ではそれほど重要ではありませんが、一般的には、IDisposableを実装するものはすべて廃棄する必要があります。通常、リソースを確定的にクリーンアップすることができます。

+1

ありがとうございます。ファイルを閉じて問題を解決しました。 – Sarah

関連する問題