InputStreamReader / BufferedReader

1) InputStreamRedaer

 

-InputStreamReader는 바이트를 읽고 지정된 문자 집합을 사용하여 문자로 해독한다.

즉 InputStreamReader는 바이트 단위로 읽어 들여 InputStream을 통해 데이터를 문자 단위로 읽어 들이는 방식으로 변형한다는 의미이다.

 

ex)

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

 

InputStreamReader docs설명

2)BufferedReader

 

-BufferedReader는 단어 뜻 그대로 버퍼를 읽는다.

즉 InputStream에서 데이터를 읽고 문자, 배열 등을 효율적으로 읽을 수 있다. 많은 데이터를 읽어야 할 상황에 적합하다고 볼 수 있다.


package io;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;

//네트워크에서 사용 - 다양한 객체 활용 가능(포장되지 않은 상태) 
public class IOEx4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		InputStream is = System.in;
		InputStreamReader isr = new InputStreamReader(is);  //InputStreamReader-필터 스트림(문자열 데이터를 활용한다고 했을 때 )
		BufferedReader br = new BufferedReader(isr);  //Reader 문자열에 관련된 입력장치	
		String data = "";
		while(true) {
			System.out.print("문자열 입력 : ");
			try {
				data = br.readLine();
			}catch(IOException e) {
				e.printStackTrace();
			}
			if(data.equals("end")) {
				System.out.println("프로그램 종료");
				break;
			}
			System.out.println("입력한 데이터는 : " + data + "입니다.");
		}
		
	}
}

InputStream은 자바의 내장 함수로서 System.in 객체를 포함하고 있다.  키보드로 문자를 입력받기 위해 System.in을 사용하고 키보드로 입력한 값에 대한 InputStream 객체를 얻을 수 있다. 이 객체를 통해 InputStreamReader 객체를 생성하는데 사용되고 이어서 BufferedReader의 버퍼에 저장해 놓았다가  readLine() 메소드를 통해 한 줄을 한번에 읽어 들이게 되는 것이다.

+ Recent posts