문자기반의 보조스트림

BufferedReader와 BufferedWriter

이 둘은 버퍼를 이용해 입출력의 효율을 높일 수 있도록 해주는 역할을 한다. 버퍼를 이용하면 입출력의 효율이 굉장히 증가하기 때문에… 사용하는 것이 좋다.

+BufferedReader.readLine()은 데이터를 줄 단위로 읽고 BufferedWriter.newLine()은 출력에 \n을 추가해준다.

실습해보자

import java.io.*;

class BufferedReader1 {

	public static void main(String[] args) {
		try {
			FileReader fr = new FileReader("BufferedReader1.java");
			BufferedReader br = new BufferedReader(fr);
			
			String line ="";
			
			for(int i = 1; (line = br.readLine()) != null; i++)
			{
				if(line.indexOf(";") != -1)
					System.out.println(i+":"+line);
			}
				
			br.close();
		} catch (IOException e) {}
	}

}

결과

Untitled

쉽지 않았다… 계속 이클립스에선 빌드해도 아무일도 안일어나고, 그래서 직접 빌드하려고 했는데, 클래스 패스부터 저 “BufferedReader1.java”파일이 .class파일과 같은 디렉토리에 있었어야 하고… 어려웠다.

왜 이클립스에서 빌드해도 아무일도 안일어났을까..? 모르겠다. 이클립스 설정이 이상한가?

아무튼 위의 결과는… 만약 읽어온 line에 indexOf() 로 “;”를 찾으면, 그 줄을 출력한다.

InputStreamReader와 OutputStreamWriter

이들은 바이트기반 스트림을 문자기반 스트림으로 연결해주는 역할을 한다!

그리고 바이트 기반 스트림의 데이터를 지정된 인코딩의 문자데이터로 변환도 해준다.

이들이 인코딩하는 cp는 OS가 사용하는 기본 cp이다. 보통 기본은 MS949라고, 콘솔창에 chcp를 치면 알 수 있다.

이 글을 참고하자..