2011-12-20 21 views
2

私はコンソールアプリケーションをc#に持っており、コンソールのすべての行がファイルに書き込まれるようにしようとしています。ストリームライターを使ってみました。ファイルにコンソール行を書き込む

using (StreamWriter writer = new StreamWriter(@"location", true)) 
{ 
    writer.WriteLine(Console.ReadLine()); 
} 

しかし、これらの方法を使用すると、出力テキストファイルはまだ空です。何か不足していますか?

ソリューション:私はそれを行う場合は、テキスト

 Console.Clear(); 
     StringWriter sw = null; 
     sw = new StringWriter(); 
     Console.SetOut(sw); 

書き込みにこの記録を開始したい場所に 書き込み、この終わり

string s = sw.GetStringBuilder().ToString(); 
     File.WriteAllText(@"file location", s); 

テキストがコンソールに表示されませんでしたこの場合は関係ありません。

+0

少なくとも*試してみましたか? http://msdn.microsoft.com/en-us/library/system.console.readline.aspx –

+1

私はあなたのコードを取り、それは私のために正常に働いた。コンソールに入力されたテキストがファイルに出力されます。 Enterを押すまでConsole.ReadLineブロックがブロックされますが、あなたはそれを理解していると思いますか? – peter

+0

私のためにも動作します。どうした。テキストを入力してEnterキーを押すと、Console.ReadLine()で返されます。また、argsを使ったあなたのコードに関して、argsはどこで定義されていますか? –

答えて

3
StringWriter sw = null; 
     try 
     { 
      sw = new StringWriter(); 
      Console.SetOut(sw); 
      Console.Write("test"); 
      string s = sw.GetStringBuilder().ToString(); 
      File.WriteAllText("c:\\BACKUP\\temp.txt", s); 
     }finally 
     { 
      if(sw != null) 
      { 
       sw.Dispose(); 
      } 
     } 
関連する問題