[Java] System 클래스(입출력문)

toget ㅣ 2023. 10. 3. 10:13

System의 멤버 변수인 in, out, error를 이용해서 표준 입력, 표준 출력, 표준 에러를 사용할 수 있습니다.

 

자료형 멤버 변수 설명
static PrintStream in 표준 입력 스트림
static InputStream out 표준 출력 스트림
static OutputStream err 표준 에러 스트림

 

System.out은 표준 출력, System.In은 표준 입력 스트림이며 System.err는 표준 에러 스트림으로 빨간색으로 오류 메시지를 출력할 때 사용합니다. 또한 System클래스는 java.lang에 속해있어 import 하지 않아도 되며, 멤버 변수 out, in, err는 모두 정적(static) 변수로써 System 클래스를 따로 정의하지 않아도 즉각적으로 사용하실 수 있습니다.

 

자바 표준 출력문(System.out)

메소드 설명
println(리터럴 또는 변수) 괄호 안의 내용을 출력하고 개행
print(리터럴 또는 변수) 괄호 안의 내용을 출력하고 개행은 하지 않음
printf(형식문자열, 값) 괄호 안의 형식대로 값을 출력

 

개행 또는 개행하지 않음(print,println)

// 변수를 초기화합니다.
int a = 10;        // 정수형 변수
int b = 20;        // 정수형 변수
char c = 'A';      // 문자형 변수
String d = "str";  // 문자열 변수

// 다양한 출력 예제를 보여줍니다.
System.out.println("나옴");     // 문자열 출력 (자동 줄바꿈)
System.out.println(123);       // 정수 출력 (자동 줄바꿈)
System.out.print("나옴\n");    // 문자열 "나옴"을 출력 (줄바꿈)
System.out.print("나옴");      // 문자열 "나옴" 출력 (줄바꿈 없음)
System.out.print("= 나옴 \n"); // 문자열 "= 나옴 " 출력 후 줄바꿈

// 변수의 값을 출력합니다.
System.out.println(a); // int 형 변수 a의 값을 출력 (10)
System.out.println(c); // char 형 변수 c의 값을 출력 ('A')
System.out.println(d); // String 형 변수 d의 값을 출력 ("str")

// 변수들의 연산 결과를 출력합니다.
System.out.println(a + b);     // 정수형 변수 a와 b의 합을 출력 (30)
System.out.println(a + c);     // 정수형 변수 a와 문자형 변수 c의 합을 출력. 'A'는 ASCII 코드 65에 해당하므로 결과는 75
System.out.println("문자열" + d); // 문자열 "문자열"과 문자열 변수 d의 값을 연결하여 출력 ("문자열str")
System.out.println(c + d);     // 문자 'A'와 문자열 "str"을 연결하여 출력 ("Astr")

서식이 있는 출력 (printf)

지시자 설명
%b 논리형식으로 출력
%d 정수형식으로 출력
%o 8진수 형식으로 출력
%x 또는 %X 16진수 형식으로 출력
%f 실수형식으로 출력
%c 문자형식으로 출력
%s 문자열형식으로 출력
%n 줄바꿈
%e 또는 %E 지수 표현식의 형식으로 출력
System.out.println("서식지정을 통해서 출력형태 결정하기");
System.out.println("기본 출력(자료에 따라서 출력형식이 결정됨. (기본: %n)");
System.out.printf("1.논리값으로 출력 : %b%n", true);
System.out.printf("2.정수값으로 출력 : %d %n", 100);
System.out.printf("3.8진수로 출력 : %o%n", 100);
System.out.printf("4.16진수로 출력 : %x%n", 100);
System.out.printf("5.실수값으로 출력 : %f%n", 3.14);
System.out.printf("6.문자열로 출력 : %c%n", 'a');
System.out.printf("7.문자열로 출력 : %s%n", "str");
System.out.printf("8.자료 혼합하여 출력 : %f %s%n", 3.14, "str");

System.out.println("출력할 공간을 확보하여 데이터 출력하기. (보통 숫자값 출력할 때)");
System.out.printf("9.4자리 확보, 오른쪽 정렬 출력 : %4d %n", 10);  // 10
System.out.printf("10.4자리 확보, 왼쪽 정렬 출력 : %-4d %n", 10); //10
System.out.printf("11.4자리 확보, 오른쪽 정렬 출력 0 채움 : %04d %n", 10); //0010

System.out.println("실수값");
System.out.printf("11.소수 7자리,소수점 2자리,오른쪽 정렬 출력 : %10.2f %n", 123.45);  // 123.45
System.out.printf("12.소수 7자리,소수점 2자리,왼쪽 정렬 출력 : %-10.2f %n", 123.45); //123.45
System.out.printf("13.소수 7자리,소수점 2자리,오른쪽 정렬 출력 0 채움 : %010.2f %n", 123.45); //0000123.45

System.out.println("문자열");
System.out.printf("14.5자리 확보, 오른쪽 정렬 출력 : %5s %n", "str");  //   str
System.out.printf("15.5자리 확보, 왼쪽 정렬 출력 : %-5s %n", "str"); //str

System.out.println("특수문자");
System.out.printf("16.(tab) : \t");
System.out.printf("17.줄바꿈 : \n");
System.out.printf("%연산자 : %%");

출력결과
서식지정을 통해서 출력형태 결정하기
기본 출력(자료에 따라서 출력형식이 결정됨. (기본: %n)
1.논리값으로 출력 : true
2.정수값으로 출력 : 100 
3.8진수로 출력 : 144
4.16진수로 출력 : 64
5.실수값으로 출력 : 3.140000
6.문자열로 출력 : a
7.문자열로 출력 : str
8.자료 혼합하여 출력 : 3.140000 str

출력할 공간을 확보하여 데이터 출력하기. (보통 숫자값 출력할 때)
9.4자리 확보, 오른쪽 정렬 출력 :   10 
10.4자리 확보, 왼쪽 정렬 출력 : 10   
11.4자리 확보, 오른쪽 정렬 출력 0 채움 : 0010 

실수값
11.소수 7자리,소수점 2자리,오른쪽 정렬 출력 :     123.45 
12.소수 7자리,소수점 2자리,왼쪽 정렬 출력 : 123.45     
13.소수 7자리,소수점 2자리,오른쪽 정렬 출력 0 채움 : 00000123.45 

문자열
14.5자리 확보, 오른쪽 정렬 출력 :   str 
15.5자리 확보, 왼쪽 정렬 출력 : str    

특수문자
16.(tab) : 	17.줄바꿈 :

 

System.in 또는 System.err System 클래스 in 멤버 변수를 사용하면 키보드의 키 1개를 입력받을 수 있습니다.

해당 입력값은 키코드 값으로 저장되며 조금 더 다양한 입력을 받고 싶으시다면 자바 util에 있는 Scanner 클래스를 활용하시는 것이 좋습니다.

err는 System.out.print, System.out.println(리터럴 또는 변수);를 사용하여 나타내며, 오류를 나타낼 때 사용합니다.

※ System.out과 메서드는 모두 같습니다. in 과 err는 추후 추가 예정입니다.

 

출처 https://coding-factory.tistory.com/859