JAVA/JAVA

Java | I/O 표준 입출력

pathas 2020. 2. 6. 22:14

표준 입출력

자바에서 미리 정의해둔 표준 입출력 클래스
표준 입출력은 콘솔 화면에 입출력된다고 해서 콘솔 입출력이라고도 함

  • System.in: 표준 입력용 스트림
  • System.out: 표준 출력용 스트림
  • System.err: 표준 오류 출력 스트림

※ in, out, err 는 모두 정적 변수이기 때문에 System 클래스를 생성하지 않고도 사용 가능


표준 입출력 Method

메소드 설명
System.in.read() 키보드로 입력된 값을 읽어들임, 더 이상 읽어들일 수 없으면 -1 리턴
System.out.write() ( )안에 입력된 값을 화면(콘솔)에 출력
컴퓨터가 숫자로 저장하고 있는 것을 사람이 읽을 수 있는 문자로 디코딩해서 출력
System.out.flush() 출력은 버퍼에 일정 용량 이상이 쌓여야 가능한데,
버퍼를 비워서 바로 출력하도록 하는 메소드
데이터를 일정 용량 쌓아두었다가 출력하는 이유는 입출력 성능 향상을 위함

※ 입출력 메소드 사용시 반드시 예외 처리를 해야함


예제_System.in.read() & System.out.write()

콘솔창에서 입력받은 문자열을 그대로 다시 콘솔창에 출력함

package j200206;

// java.io: 입출력에 필요한 package
import java.io.*;

public class SimpleIn {

    // 입출력 메소드는 반드시 예외처리를 해주어야함
    // 예외가 발생하지 않는 경우에는 throws문으로 간단하게 처리
    public static void main(String[] args) throws IOException {

        // 영문자, 한글, 숫자, 특수기호 등을
        // 컴퓨터는 모두 숫자로 읽어 들이기 때문에 int 자료형 변수 선언
        int charRead;

        System.out.println("아무 문자열이나 입력 하시오");

        /* 얼마나 읽어들일지를 알 수 없기 때문에 while문 사용
        아스키코드, 유니코드는 전부 0이상의 수로 이루어져 있고,
        System.in.read()는 파일을 읽을 수 없을 때
        -1을 리턴하기 때문에 아래와 같은 조건식 작성 
        */

        while ((charRead = System.in.read()) >= 0) {
        // 컴퓨터가 저장하고 있는 숫자를 사람이 읽을 수 있도록 출력
            System.out.write(charRead);
        }

        /*
        아무 문자열이나 입력 하시오
        안녕하세요
        안녕하세요
        */

    }

}

자바를 시작하면서부터 써왔던 System.out 과

스캐너 객체를 생성할 때 많이 사용했던 System.in 표준 입출력에 대해 살펴보았습니다.

표준 입출력은 키보드를 통해서 값을 입력받고, 콘솔창으로 출력하기 때문에

이후의 입출력 스트림에서도 많이 사용될 예정입니다.