Everything has an expiration date
174 - Java 자바의 기본 입출력(I/O) : 문자 Stream - Reader로 읽은 문자를 바이트 기반 출력 write() 메소드로 출력시 한글이 깨지는 현상 확인 본문
[Java]/Program source (java)
174 - Java 자바의 기본 입출력(I/O) : 문자 Stream - Reader로 읽은 문자를 바이트 기반 출력 write() 메소드로 출력시 한글이 깨지는 현상 확인
Jelly-fish 2023. 9. 25. 17:48/* ========================================
■■■ 자바의 기본 입출력(I/O) ■■■
- Reader 실습
==========================================*/
// Test172.java 파일과 비교
// 문자 기반 스트림 - Reader. Writer.
// 바이트 기반 스트림 - read, write
// new BufferedReader ( new 번역기 (System.in) );
// ----------- ==========
// 문자 바이트→문자 바이트
// 번역기 InputStreamReader
// ----------- ====
// 바이트 문자
//
// 바이트 기반을 문자 기반으로 읽어들이는 InputStreamReader
// InputStream → 바이트
// Reader → 문자
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
public class Test174
{
public static void main(String[] args) throws IOException
{
int data;
char ch;
// System.in : 자바의 표준 입력 스트림 → 바이트 기반 스트림
// InputStreamReader : 바이트 기반 스트림을 문자 기반 스트림으로
// 변환을 해주는 역할 수행
// Reader : 문자 기반 스트림 객체
Reader rd = new InputStreamReader(System.in);
// ★ 문자 기반 스트림으로 읽고
// ★ 문자 기반 출력을 해야 안 깨진다.
System.out.println("문자열 입력(종료: Ctrl+z)");
while( (data = rd.read()) != -1)
{
ch = (char)data;
//System.out.print(ch);
//--==>> 문자열 입력(종료: Ctrl+z)
// abcd
// abcd
// ABCD
// ABCD
// 1234
// 1234
// 가나다라
// 가나다라
// ^Z
// 계속하려면 아무 키나 누르십시오 . . .
System.out.write(ch);
//--==>> 문자열 입력(종료: Ctrl+z)
// abcd
// abcd
// ABCD
// ABCD
// 1234
// 1234
// 가나다라
// 섆|
// ^Z
// 계속하려면 아무 키나 누르십시오 . . .
}
}
}