既定では、Console.Writeメソッド(またはConsole.WriteLineメソッド)を呼び出すと、標準出力先(コンソールや出力ウィンドウ)に文字列が出力されます。しかし、Console.SetOutメソッドで出力ストリームを変更することにより、例えばファイルに出力できるようになります。
次の例では、Console.Writeでファイル"C:\test\1.txt"に出力されるように出力ストリームを変更しています。
'出力ファイルを指定して、StreamWriterオブジェクトを作成 Dim sw As New System.IO.StreamWriter("C:\test\1.txt") '自動的にフラッシュされるようにする sw.AutoFlush = True 'スレッドセーフラッパを作成 Dim tw As System.IO.TextWriter = System.IO.TextWriter.Synchronized(sw) 'Consoleの出力ストリームを変更する Console.SetOut(tw)
//出力ファイルを指定して、StreamWriterオブジェクトを作成 System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\test\\1.txt"); //自動的にフラッシュされるようにする sw.AutoFlush = true; //スレッドセーフラッパを作成 System.IO.TextWriter tw = System.IO.TextWriter.Synchronized(sw); //Consoleの出力ストリームを変更する Console.SetOut(tw);
出力ストリームを標準出力ストリームに戻るには、次のようにします。
'標準出力ストリームを作成 Dim standard As New System.IO.StreamWriter(Console.OpenStandardOutput()) '自動的にフラッシュされるようにする standard.AutoFlush = True 'Consoleの出力ストリームを変更する Console.SetOut(standard)
//標準出力ストリームを作成 System.IO.StreamWriter standard = new System.IO.StreamWriter(Console.OpenStandardOutput()); //自動的にフラッシュされるようにする standard.AutoFlush = true; //Consoleの出力ストリームを変更する Console.SetOut(standard);