표준 입출력과 File: System(in, out, err)

2022. 4. 27. 14:02·자바/입출력 IO

1. 표준 입출력 - System.in, System.out, System.err

- 자바에서는 System.in, System.out, System.err을 제공하는데, 자바 어플리케이션의

실행과 동시에 사용할 수 있게 자동적으로 생성되기 때문에 개발자가 별도로 스트림을

생성하는 코드를 작성하지 않고도 사용 가능하다.

 

- in, out, err는 System에 정의된 클래스(static) 변수이다.

 

- 아래의 코드처럼 InputStream과 PrintStream이 선언부로 되어있지만, 사실 BufferedInputStream과

BufferedOutputStream의 인스턴스를 사용한다.

 

public final class System{

    public final static InputStream in = nullInputStream();

    public final static PrintStream out = nullInputStream();

    public final static PrintStream err = nullInputStream();

    ...

}

 

 

 

 

1-1. 표준 입출력을 이해하기 위한 예제(1)

 

( ^z 를 누르기 전까지 블락킹 상태에 머무른다. )

 

( Enter키를 누르면 마지막 두 줄 13, 10인 \r과 \n이 출력된다. )

( \r은 캐리지리턴으로 커서를 현재 라인의 첫 번째 컬럼으로 이동시킨다. )

 

( Enter키를 누를때 마다 \r과 \n이 등장하게 되므로, System.in에 BufferedReader를

이용해서 readLine()을 통해 라인 단위로 데이터를 읽어주면 된다. )

 

 

 

 

2. 표준 입출력의 대상변경 - setOut(), setErr(), setIn()

- setOut(), setErr(), setIn()를 사용하면 입출력을 콘솔 이외에 다른 입출력 대상으로

변경하는 것이 가능하다. 

 

메서드 설명
static void setOut(PrintStream out)  System.out의 출력을 지정된 PrintStream으로 변경
static void setErr(PrintStream err)  System.err의 출력을 지정된 PrintStream으로 변경
static void setIn(InputStream in)  System.in의 입력을 지정된 PrintStream으로 변경

 

( System.out과 System.err는 모두 출력 대상이 콘솔이기 때문에, println을 쓴다면 같은 결과를 얻는다. )

 

 

 

 

2-1. 표준 입출력의 대상변경을 이해하기 위한 예제(1)

: System.out의 출력 소스를 test.txt로 변경하는 예제이다.

 

Exercise021

'자바 > 입출력 IO' 카테고리의 다른 글

표준 입출력과 File: File(1)  (0) 2022.04.27
표준 입출력과 File: RandomAccessFile  (0) 2022.04.27
문자 기반의 보조 스트림: (Buffered, InputStream, OutputStream) 읽기와 쓰기  (0) 2022.04.27
문자 기반 스트림: (File, Piped) Reader/Write  (0) 2022.04.26
FilterOutputStream의 자손: Print 스트림(보조 스트림)  (0) 2022.04.25
'자바/입출력 IO' 카테고리의 다른 글
  • 표준 입출력과 File: File(1)
  • 표준 입출력과 File: RandomAccessFile
  • 문자 기반의 보조 스트림: (Buffered, InputStream, OutputStream) 읽기와 쓰기
  • 문자 기반 스트림: (File, Piped) Reader/Write
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      소켓 프로그래밍
      다형성
      java.lang패키지
      스트림
      map()
      제자리 정렬
      역직렬화
      자바 개념
      Collections Framework
      안드로이드 스튜디오
      file
      문자 기반 스트림
      코딩테스트
      중간연산
      람다식
      알고스팟
      코드트리
      유용한 클래스
      snail
      InputStream
      코딩트리조별과제
      Arrays
      안정 정렬
      java.time 패키지
      선택 정렬
      serializable
      TCP 소켓 프로그래밍
      불안정 정렬
      outputstream
      ServerSocket
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    표준 입출력과 File: System(in, out, err)
    상단으로

    티스토리툴바