2017-10-24 10 views
1

私の目標は、TCPサーバーから何らかのテキストストリーミングを取得し、それを.txtファイル(またはDBですが、今のところtxtファイルはOK)に書き込むことができる、 。しかし、...私が下のコードを実行しようとすると、単にファイルに何も書き込まれません。ファイルは空のままで、whileループを削除した場合にのみ機能します。削除すると、ファイルに文字列 "ciao"が書き込まれます。そうでなければ、彼はそれを書いたり、例外を投げたりしません。それは私を夢中にさせている....とにかく、私はそれを正しくやっているの?それを行うより良い方法はありますか?TcpClientとStreamWriterの両方で動作しているエラー

ありがとうございました! :)

public static void Main() 
{ 
    TcpClient client = new TcpClient(); 

    Console.WriteLine("In connessione....."); 

    client.Connect("192.168.5.200", 4001); 

    Console.WriteLine("Connesso"); 

    StreamReader sr = new StreamReader(client.GetStream()); 

    string data = sr.ReadLine(); 

    using (StreamWriter sw = File.AppendText(@"C:\Users\Public\Documents\test.txt")) 
    { 
     sw.WriteLine("ciao"); 

     while (data != null) 
     { 
      Console.WriteLine(data); 
      sw.WriteLine(data); 
      data = sr.ReadLine(); 
     } 
    } 

} 
+0

あなたが 'あなたのライターを.Flush'する場合があります... –

答えて

0

それだけで私はwhileループ

を削除する場合には問題は、ファイルが編集モード(と書かれたテキストバッファリングされた)内に留まることだけである私には思える作品と書かれてしまうことはありません。

数行後に行の読み取りを終了するとどうなるか試してみてください。ファイルに書き込まれますか?私はそれが確信しています。あなたのバッファをフラッシュすると、ファイルに書き込まれた中間結果を得るため、sw.WriteLine(data);後にこれを置くためのオプションです:

sw.Flush(); 
+0

うわー、それは動作します!!!!どうもありがとうございます!! – stefano

関連する問題