자바에서 표준 입출력(Standard Input/Output)은 프로그램과 사용자 간의 기본적인 데이터 교환 방법을 제공합니다.
표준 입출력의 핵심 요소
1. System.in
- System.in은 자바 프로그램의 표준 입력 스트림입니다. 기본적으로 이 스트림은 키보드 입력을 받습니다.
이는 InputStream 객체로, 바이트 기반의 낮은 수준의 입력 기능을 제공합니다 . 일반적으로, 사용자로 부터 텍스트를 읽기 위해
Scanner 클래스나 BufferedReader 와 같은 더 높은 수준의 래퍼(wrapper)를 사용하여 쉽게 데이터를 처리할 수 있습니다.
2.System.out
- System.out 은 자바 프로그램의 표준 출력 스트림으로, 텍스트 데이터를 콘솔에 출력합니다. 이 스트림은 PrintStream 객체로,
println(), print(), printf() 등의 메소드를 제공하여 다양한 형식으로 데이터를 콘솔에 출력할 수 있습니다.
3.System.err
-System.err도 PrintStream 객체로, 주로 에러 메세지나 중요한 경고 메시지를 콘솔에 출력할 때 사용됩니다.
System.out과 기능적으로 동일하지만. 일반 출력과 에러 출력을 구분하여 사용자에게 보여주는데 도움을 줍니다.
package ch01;
import java.io.IOException;
/**
* 표준 입출력이란?
* 자바에서 표준 입출력은 프로그램과 사용자 간의 기본적인 데이터 교환 방법을 제공 합니다.
*/
public class MySystemIn {
public static void main (String[] args) {
//표준 입출력- 키보드 , 모니터
// System.in, System.out, System.err
// 키보드에서 값 입력 받기(Scanner )
System.out.println("알파벳 하나를 쓰고 Enter 키를 누르세요")
int i; // 입력된 바이트를 저장할 변수
try {
// System.in,read()는 키보드에서 1 바이트를 읽어 ASCII 코드(0~255) 로 반환 처리
// 주의 : 힌글(3바이트)는 처리 불가 깨진 문자난 의미 없는 정수값을 출력함
i= System.in.read(); //
System.out.println("----------");
//읽은 바이트의 정수값을 출력
System.out.println(i)
//형변환
System.out.println((char)i);
} catch (IOException e) {
// 입력 중 오루 발생 시 스택 트레이스 출력
e.printStackTrace();
throw new RuntimeException(e);
}
} // end of main
}
package ch01;
import java.io.IOException;
/**
* 입력 스트림 (in) 키보드에서 프로그램으로 데이터가 들어온다(스트림을 통해서)
*기능에 확장을 해보자.
*/
public class MySystemIn2 {
public static void main(String[] args) {
System.out.println("알파벳 열 개 쓰고 Enter 를 누르세요");
int i;
try{
// 키보드에서 엔터는 \n 로 표현이 된다.
while ((i = System.in.read()) != '\n') {
// 읽은 바이트의 정수값을 출력
System.out.println("i : " + i);
System.out.println("문자로 표현 :" + (char)i);
}
}catch (IOException e) {
throw new RuntimeException(e);
}
} // end of main
}
바이트 기반 스트림
InputStream / OutputStream : 이 클래스들은 데이터를 바이트 단위로 읽고 쓰는 기본적인 기능을 제공합니다.
728x90
'JAVA 유용한 클래스' 카테고리의 다른 글
(JAVA) 파일로 데이터 내보내기 FileOutputStream - 15 (0) | 2025.05.29 |
---|---|
(JAVA)파일에서 데이터를 가져오기 FileInputStream - 14 (0) | 2025.05.29 |
(JAVA)자바 I/O 개론 (작성중) - 12 (0) | 2025.05.29 |
(JAVA) 일본식 Time (0) | 2025.05.14 |
(JAVA)Java.time 패키지 - 11 (0) | 2025.05.14 |