C#에서는 Console 클래스를 통해 표준 입력 스트림과 표준 출력 스트림에 손쉽게 접근할 수 있습니다. 각각 Console.In과 Console.Out 속성을 사용하며, 이를 활용하면 콘솔 환경에서 데이터를 읽고 쓰는 작업을 더욱 유연하게 처리할 수 있습니다.
표준 입력 스트림 얻기 – Console.In
표준 입력 스트림은 Console.In 속성으로 가져올 수 있습니다. 아래 예제를 통해 확인해 보겠습니다.
예제 코드
using System;
public class Demo {
public static void Main(string[] args){
Console.WriteLine("Displaying standard input stream...");
Console.WriteLine("Standard Input Stream = " + Console.In);
}
}
실행 결과
Displaying standard input stream... Standard Input Stream = System.IO.TextReader+SyncTextReader
Console.In은 System.IO.TextReader+SyncTextReader 객체를 반환합니다. 여기서 SyncTextReader는 내부적으로 동기화가 적용된 TextReader 래퍼로, 멀티스레드 환경에서도 안전하게 입력을 읽을 수 있도록 설계되어 있습니다.
표준 출력 스트림 얻기 – Console.Out
이번에는 표준 출력 스트림을 화면에 표시하는 예제입니다. Console.Out 속성을 사용하면 됩니다.
예제 코드
using System;
public class Demo {
public static void Main(string[] args){
Console.WriteLine("Displaying standard output stream...");
Console.WriteLine("Standard Output Stream = " + Console.Out);
}
}
실행 결과
Displaying standard output stream... Standard Output Stream = System.IO.TextWriter+SyncTextWriter
Console.Out은 System.IO.TextWriter+SyncTextWriter 객체를 반환합니다. 마찬가지로 동기화된 TextWriter 형태로, 스레드 안전성을 보장하면서 출력을 처리합니다.
정리
- Console.In: 키보드 입력 등 표준 입력을 담당하는 TextReader 계열 객체를 반환합니다.
- Console.Out: 콘솔 화면 출력을 담당하는 TextWriter 계열 객체를 반환합니다.
- 두 속성 모두 일반적인 파일 스트림처럼 다룰 수 있어,
SetIn(),SetOut()메서드와 함께 사용하면 입출력 대상을 파일이나 다른 스트림으로 자유롭게 변경(리디렉션)할 수 있습니다.