InputStreamReader / BufferedReader
1) InputStreamRedaer
-InputStreamReader는 바이트를 읽고 지정된 문자 집합을 사용하여 문자로 해독한다.
즉 InputStreamReader는 바이트 단위로 읽어 들여 InputStream을 통해 데이터를 문자 단위로 읽어 들이는 방식으로 변형한다는 의미이다.
ex)
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
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() 메소드를 통해 한 줄을 한번에 읽어 들이게 되는 것이다.
'JAVA' 카테고리의 다른 글
[JAVA] 쓰레드(Thread) -1 (0) | 2020.10.03 |
---|---|
[JAVA] IO (FileInputStream) (3) (0) | 2020.10.01 |
[JAVA] IO(Input / output) (1) (0) | 2020.10.01 |
[JAVA] Exception - 예외 처리(1) (0) | 2020.09.24 |
[JAVA] Random 클래스 - 가위바위보, 로또 번호 생성기 (0) | 2020.09.24 |