Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

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
			//       계속하려면 아무 키나 누르십시오 . . .
		}
	}
}