본문 바로가기
Java

Java 표준 입출력 system 클래스

by Euisaac 2024. 4. 11.

Java 표준 입출력 system 클래스

system클래스는 java.lang패키지에 포함되어있어 별도로 스트림을 생성하는 코드를 작성하지 않아도 사용 가능하다.

멤버 변수 out, in, error를 통해 표준 출력, 표준 입력, 표준 에러를 제공하며 모두 정적(static)변수로 System 클래스를 따로 정의하지 않아도 사용 가능하다.

 

out PrintStream 표준 출력 스트림
err PrintStream 표준 에러 출력 스트림
in iInputStream 표준 입력 스트림

 

 

 

system.out

콘솔창에 문자 출력

 

system.out.print() : 괄호 안의 내용 출력(줄 바꿈x)

system.out.println() : 괄호 안의 내용 출력 후 줄 바꿈

system.out.printf() : 괄호 안의 내용을 지정된 형식으로 출력

지시자와 데이터의 개수가 같아야하며, 형식이 맞지 않으면 출력이 이루어지지 않음

 

더보기

지시자

%d: 정수 출력(10진수)(소수점 x)

%f: 실수 출력(소수점 o)

%o: 8진수 형식 출력

%x: 16진수 형식 출력

%c: 문자 출력

%s: 문자열 출력

%b: 부울 값 출력

public class test {
    public static void main(String[] args) {

        String name = "홍길동";
        int a = 22;
        double b = 5.19;


        System.out.println("반갑습니다.");
        System.out.print("안녕");
        System.out.print("안녕\n");
        System.out.printf("제 이름은 %s 입니다.\n", name);
        System.out.printf("%d %f", a, b);

    }
}

 

 

system.err

더보기

 콘솔에서 빨간색으로 출력 

public class test {
    public static void main(String[] args) {

        String name = "홍길동";
        int a = 22;
        double b = 5.19;


        System.err.println("반갑습니다.");  //system.out과 달리 콘솔에 빨간색으로 출력
        System.err.print("안녕");
        System.err.print("안녕\n");
        System.err.printf("제 이름은 %s 입니다.\n", name);
        System.out.printf("%d %f", a, b);

    }
}

PrintStream 클래스 타입

System.err 객체는 표준 에러 출력 장치를 의미

 

system.out과 system.err의 차이

더보기

out과 err 모두 콘솔에 문자열을 출력하고 자체적으로 buffer를 가지고 있지만 다른 타이밍에 flush를 한다

out은 여러 개의 print request를 buffer에 넣고 기다렸다가 적절한 타이밍에 한번에 출력한다.

err는 에러발생을 기록하기 위한 목적이 있기 때문에 바로 출력한다.

out과 err를 동시에 호출하였을 경우 err가 먼저 출력될 가능성이 높다.

public class test {
    public static void main(String[] args) {


        System.out.println("반갑습니다.");
        System.err.println("안녕"); 
        System.out.println("반갑습니다."); //err가 먼저 출력될 가능성이 높음

    }

}

system.in

 콘솔로부터 데이터를 입력

'Java' 카테고리의 다른 글

Java 콘솔 입력 (scanner)  (0) 2024.05.23
Java 증감 연산자  (0) 2024.05.23
참조형 타입(reference type)  (0) 2024.05.09
java의 접근제어자(Access Modifier)  (0) 2024.04.11