System 클래스의 표준 입출력 멤버
public class System {
public static PrintStream out;
public static InputStream in;
public static PrintStream err;
}
- System.out : 표준 출력(모니터) 스트림
- System.in : 표준 입력(키보드) 스트림
- System.err : 표준 에러 출력(모니터) 스트림
예제 코드
문자를 입력받아 출력하는 코드
SystemInTest1.java
package ch13;
import java.io.IOException;
public class SystemInTest {
public static void main(String[] args) {
System.out.println("알파벳 하나를 쓰고 [Enter]를 누르세요");
int i;
try {
i = System.in.read(); // read()의 반환값 int
System.out.println(i);
System.out.println((char)i); // 문자 출력
} catch (IOException e) {
e.printStackTrace();
}
}
}
수행 결과
알파벳 하나를 쓰고 [Enter]를 누르세요
A // 입력
65
A
알파벳 여러개를 입력받는 경우
package ch13;
import java.io.IOException;
public class SystemInTest {
public static void main(String[] args) {
System.out.println("알파벳 여러개를 쓰고 [Enter]를 누르세요");
int i;
try {
while((i = System.in.read()) != '\n') { // new line이 들어오지 않을 때까지 read
System.out.print((char)i);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
수행 결과
- 알파벳을 입력 받는 경우
알파벳 여러개를 쓰고 [Enter]를 누르세요
abcde // 입력
abcde
- 한글을 입력받는 경우
알파벳 여러개를 쓰고 [Enter]를 누르세요
안녕하세요 // 입력
¾?³???¼¼¿?
- read()는 바이트 단위로 읽음
- 한글과 같은 문자는 2바이트씩 읽어들여야 함
- 보조 스트림을 이용하여 구현할 수 있음
InputStreamReader 스트림 활용
- InputStreamReader : Byte를 문자로 바꿔주는 클래스
- 매개변수로 스트림을 입력받음
int i;
try {
InputStreamReader isr = new InputStreamReader(System.in); // 보조 스트림
while((i = isr.read()) != '\n') { // 보조 스트림 인스턴스로 read
System.out.print((char)i);
}
} catch (IOException e) {
e.printStackTrace();
}
수행 결과
알파벳 여러개를 쓰고 [Enter]를 누르세요
안녕하세요 // 입력
안녕하세요
'Java & Kotlin' 카테고리의 다른 글
[Java 기능] 바이트 단위 입출력 스트림 (0) | 2022.02.17 |
---|---|
[Java 기능] I/O 스트림 (0) | 2022.02.16 |
[Java 기능] 오류 로그 남기기 - java.util.logging.Logger 활용 (0) | 2022.02.16 |