Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 반복문
- 자바 멀티스레딩
- continue문
- 인텔리제이 기초 설정
- 접근제어지시자
- multi-threading
- 인텔리제이 한글 깨짐 해결법
- 집합관계
- 메서드
- Java
- 형 변환
- 연관관계
- 시스템 환경 변수 편집
- this예약어
- Thread
- 메서드 오버로딩
- java변수
- 상수
- 컴파일
- OPP개념
- IntelliJ IDEA
- 생성자
- 포함관계
- for문
- While
- JAVA객체지향
- Java데이터 타입
- JAVA기초
- break문
- function
Archives
- Today
- Total
최원종의 개발 블로그
자바 표준 입출력( 키보드, 콘솔) 본문
표준 입출력
표준입출력이란 프로그램이 기본적으로 사용하는 입력과 출력 장치와의 통로를 말함
표준 입출력 3가지
System.in → 키보드에서 프로그램으로 들어오는 통로 (InputStream)
System.out → 프로그램에서 콘솔로 나가는 통로 (PrintStream)
System.err → 에러 메시지 전용 통로 (PrintStream)
-코드
package io.ch13;
import java.io.IOException;
/**
* 표준 입출력이란?
* 자바에서 표준 입출력은 프로그램과 사용자간에 기본적인 데이터 교환 방법을 제공한다
*/
public class MySystemIn {
public static void main(String[] args) {
System.out.println("알파벳 하나를 쓰고 enter 키를 누르세요");
int i;
try {
i = System.in.read();
//주의 : 한글(3바이트)은 처리 불가 -> 깨진 문자나 의미없는 정수값이 출력됨
System.out.println("------------------------");
System.out.println(i);
System.out.println((char) i);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
//반환값이 byte가 아닌 int인 이유
read() 가 반환하는 값의 종류:
- 정상 데이터 : 0 ~ 255 (1바이트 범위) - (부호 없는 바이트 읽음)
- 더 읽을 게 없음 : -1 ← 이게 핵심!
즉, -1 = "더 읽을 데이터가 없다" (끝 신호)를
명확하게 표시하기 위해서 int로 반환 함
System.in.read() 문제점
System.in.read() 의 문제점 3가지:
1. 1바이트씩밖에 못 읽음 → 사용이 불편함
2. 한글 처리 불가 → 3바이트짜리 한글이 잘려서 깨짐
3. 타입 변환 직접 해야 함 → 숫자를 받으려면 직접 변환 코드 필요
자바 표준 입출력 핵심 요약
System.in
→ 키보드 입력을 1바이트씩 읽는 표준 입력 스트림
→ read() 반환값: 0~255 (데이터) 또는 -1 (끝)
→ 반환 타입이 int 인 이유: -1 을 끝 신호로 구분하기 위해
→ 한글 처리 불가, 실무에서는 Scanner / BufferedReader 로 감싸서 사용
System.out
→ println() : 출력 + 줄바꿈
→ print() : 출력만 (줄바꿈 없음)
→ printf() : 형식 지정 출력 (%s, %d, %f ...)
System.err
→ System.out 과 사용법 동일
→ 콘솔에서 빨간색으로 표시됨
→ 에러/경고 메시지 전용으로 구분해서 사용
'Java > JAVA 유용한 클래스' 카테고리의 다른 글
| FileOutputStream (0) | 2026.03.20 |
|---|---|
| FileInputStream (0) | 2026.03.20 |
| 자바 I/O 개론 (0) | 2026.03.20 |
| 멀티 스레딩(multi-threading) (0) | 2026.03.13 |
| Inner class(중첩 클래스) (0) | 2026.03.12 |

