프로그래밍/자바
자바 : BufferedReader와 PrintWriter
김마농
2012. 3. 29. 11:39
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class BufferReaderWriterTest {
public static void main(String[] args) {
//Filter Steram을 이용한 입출력
//BufferedRedaer와 PrintWriter를 이용해 news.txt->news3.txt로 입출/력
FileReader fr = null;
FileWriter fw = null;
//Filter스트림
BufferedReader br = null;//버퍼를 이용, 라인단위로 읽는 기능
PrintWriter pw = null;//데이터 포맷에 맞게 출력, println(), print()
try{
//1-1 d연결
fr = new FileReader("D:\\news.txt");
fw = new FileWriter("D:\\news4.txt");
//1-2 filter 스트림 추가
br = new BufferedReader(fr);
//fr 노드 스트림에다가 BufferedReader 필터를 추가해준다.
pw = new PrintWriter(fw);//한꺼번에 출력하는는 경우에 쓰인다.
//pw = new PrintWriter(fw,true);//true : auto flush - println()하면 바로 출력된다.
//쓸때마다 출력해야 하는 경우는(true)를 더하면 된다, 바로바로 출력하는 채팅에 쓰이게 된다.
//fw 노드 스트림에다가 PrintWriter 필터를 추가해준다,
//2. read(BufferedReader)와 writer(PrintWriter)를 해준다.
String str = br.readLine();//엔터를 기준으로 읽어들임(엔터는 안읽는다.)
while(str!=null)//EOF : null을 리턴
{
pw.println(str);
System.out.println(str);
str=br.readLine();
}
//pw.flush();//buffer에 있는 데이터를 최종 출력장소로 밀어내는 메소드
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
//3. 연결끊기 - Filter를 끊으면 된다.
if(br!=null)
{
try{
br.close();
}catch(IOException e){
e.printStackTrace();
}
}
if(pw!=null){
pw.close();//throws안함, 내부적으로 처리함
}
}
}
}