표준 입출력(Standard I/O)

정순동·2024년 1월 16일
0

자바기초

목록 보기
82/89

표준 입출력

표준 입출력은 콘솔을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미한다. 자바에서는 표준 입출력을 위한 3가지 스트림, System.in, System.out, System.err를 제공한다.

이 3가지 입출력스트림은 자바 어플리케이션이 실행되면 생성되고 종료되면 자동으로 닫힌다. 따라서 별도의 생성없이 System.out스트림의 메서드(println등)을 사용할 수 있다.

System.in
콘솔로부터 데이터를 입력받는데 사용(표준 출력)
System.out
콘솔로 데이터를 출력하는데 사용(표준 입력)
System.err
콘솔로 데이터를 출력하는데 사용(표준 입력)

System클래스의 소스를 보면 in, out, err는 System클래스에 선언된 클래스변수(static)이다.

	public final class System {
    	public final static InputStream in = nullInputStream();
        public final static PrintStream out = nullPrintStream();
        public final static PrintStream err = nullPrintStream();
        ...
    }

선언부만 봐서는 InputStream/PrintStream으로 구성된 것 같지만 실제로는 버퍼를 이용하는 BuffefredInputStream과, BufferedOutputStream의 인스턴스를 사용한다.

표준 입출력의 대상변경

초기에는 System.in, System.out, System.err의 입출력대상이 콘솔 화면 이었으나 setIn(), setOut(), setErr()를 사용해 콘솔 외의 다른 입출력 대상으로 변경하는 것이 가능하다.

※ JAVA5부터 java.util.Scanner클래스로 System.in으로 부터 데이터를 입력받아 작업하는 것이 편리해 졌다.

	System.out.println("out : Hello World!");
    System.out.println("err : Hello World!");

0개의 댓글