InputStreamReader를 활용하여 키보드 입력을 받아 콘솔에 출력 및 파일로 저장

안녕하세요

이번 시간에는 InputStreamReader / OutputStreamWriter를 활용한 예제를 보여드리겠습니다

일단 InputStreamReader / OutputStreamWriter를 설명하자면..

 [1] 2byte 기반 스트림
 [2] Bridge Stream
 - 1byte로 입력받은 데이터를 2byte로 조합하여 읽거나 내보낸다.
 - 1byte 기반 스트림을 2byte 기반 필터 스트림과 중간에 연결해주는 기능을 수행함


아래 예제는 키보드 입력을 받아서 콘솔에 출력하는 예제입니다.

=======================================================

public class InputStreamReadertest {

public static void main(String[] args) throws IOException {

InputStreamReader ir = new InputStreamReader(System.in);
OutputStreamWriter ow = new OutputStreamWriter(System.out);

ow.write("입력하세요=>");
ow.flush();

// 배열을 쓰려면 char[] 배열을 활용해야 한다.

int input=0;
while((input=ir.read())!=-1){

ow.write(input);
ow.flush();
}

ir.close(); ow.close();

}

}

=======================================================

저 소스 코드를 실행할 때 자바 콘솔 창에서 하는 것보다 도스 창에서 실행하는 것이

더 낫습니다.



소스코드를 실행하려면 해당 프로젝트에 src 폴더가 아닌 bin 디렉토리에 가서

java io,day4.InputStreamReaderTest 명령어를 쳐야 실행이 됩니다

중간에 io.day4는 패키지 명이고 그 안에 InputStreamReaderTest 라는 자바 파일이 있습니다.



InputStreamReader / OutputStreamWriter 를 활용한 두 번째 예제도 올려봅니다.

두 번째 예제는 c:myjava 밑에 utf-8 방식으로 파일을 저장하는 예제입니다.

이것 또한 매우 간단합니다.

하지만 저 같은 경우는 io 입출력 예제를 처음 접하기 때문에 잘 몰라 어렵더군요 ㅜ



public class InputStreamReadertest2 {

public static void main(String[] args) throws IOException {

//2바이트로 읽어서 2바이트로 내보내자
//FileReader fr = new FileReader("C:/MyJava/스트림테스트.txt"); // 글자가 깨짐

FileInputStream fis = new FileInputStream("C:/MyJava/스트림테스트.txt");
InputStreamReader ir = new InputStreamReader(fis, "UTF-8");
OutputStreamWriter ow = new OutputStreamWriter(System.out);

int input=0;
while((input=ir.read())!=-1){
ow.write(input);
ow.flush();
}

fis.close();
ir.close();
ow.close();
}

}


댓글 없음:

댓글 쓰기