"자습 C# 버전 3"11장(p416)에서 표준 흐름 방향을 끄고 표준 출력을 모니터로 되돌리는 방법
그림-1 모니터에 아무것도 안 나와요.
그런데 오류가 생겼어요!
"ControlPoint 예외 없음:
System.ObjectDisposeException:
닫힌 TextWriter에 쓸 수 없습니다."
그림-2 잘못된 상황
소스 코드
using System;
using System.IO;
using System.Text;
namespace p417
{
class Redirect
{
static void Main(string[] args)
{
Console.WriteLine("logfile.txtへ出力するようリダイレクト");
StreamWriter log_out;
try
{
log_out = new StreamWriter("logfile.txt");
}
catch (IOException exc)
{
Console.WriteLine(exc.Message);
return;
}
// logfile.txtへ出力するようリダイレクト
Console.SetOut(log_out);
try
{
Console.WriteLine("This is the start of the log file.");
for (int i = 0; i < 10; i++) Console.WriteLine(i);
Console.WriteLine("This is the end of the log file.");
}
catch (IOException exc)
{
Console.WriteLine(exc.Message);
}
log_out.Close();
/*
// リダイレクトをディスプレイに戻す(以下、3行を追記。/*と*/記号を外せば、エラーが修正される。)
var standardOutput = new StreamWriter(Console.OpenStandardOutput(),Encoding.Default);
standardOutput.AutoFlush = true; //StreamWriter が呼び出されるたびに、Write(Char) によって基になるストリームに対するバッファーをフラッシュするかどうかを示す値を取得または設定します。
Console.SetOut(standardOutput);
*/
// ディスプレイに出力
Console.WriteLine("標準出力がファイルからディスプレイに戻る。");
Console.WriteLine("リダイレクトの結果logfile.txtを、実行ファイルのあるフォルダに出力しました。");
Console.WriteLine();
}
}
}
따라서 위 소스 코드의 아래쪽/*...*/리뷰 부분을 추가해서 해결했습니다.그림-3 오류 수정 결과
Reference
이 문제에 관하여("자습 C# 버전 3"11장(p416)에서 표준 흐름 방향을 끄고 표준 출력을 모니터로 되돌리는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/guijiu/items/0a17a98152374e932ba8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)