파일 복사 프로그램 개선
FileReader 객체를 BufferedReader의 인자로 지정해서 BufferedReader 객체를 생성하고, FileWriter 객체를 BufferedWriter의 인자로 지정해서 BufferedWriter 객체를 생성했다. 이는 FileReader를 BufferedReader로 감싸므로써 FileReader에게 Buffer를 가진 것 같은 효과를 준 것이다. 물론, 마찬가지로 FileWriter도 BufferedWriter로 감싸므로써 Buffer를 가진 것처럼 해준다.
BufferedReader에 있는 read() 메소드를 이용해서 문자 배열 형태로 읽어 들인 후, 읽어 들인 문자 배열을 BufferedWriter에 있는 writer() 메소드를 이용해서 출력한다.
import java.io.*;
public class BufferFileCopy {
public static void main(String[] args) {
if(args.length != 2){
System.out.println("사용법 : java FileCopy 파일명1 파일명2");
System.exit(0);
} //if
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try{
fr = new FileReader(args[0]);
br = new BufferedReader(fr);
fw = new FileWriter(args[1]);
bw = new BufferedWriter(fw);
char[] buffer = new char[512];
int readcount = 0;
while((readcount = br.read(buffer)) != -1){
bw.write(buffer,0,readcount);
}
System.out.println("파일을 복사하였습니다.");
}catch(Exception ex){
System.out.println(ex);
}finally{
try{
br.close();
bw.close();
}catch(Exception e){}
}
}
}
public class BufferFileCopy {
public static void main(String[] args) {
if(args.length != 2){
System.out.println("사용법 : java FileCopy 파일명1 파일명2");
System.exit(0);
} //if
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try{
fr = new FileReader(args[0]);
br = new BufferedReader(fr);
fw = new FileWriter(args[1]);
bw = new BufferedWriter(fw);
char[] buffer = new char[512];
int readcount = 0;
while((readcount = br.read(buffer)) != -1){
bw.write(buffer,0,readcount);
}
System.out.println("파일을 복사하였습니다.");
}catch(Exception ex){
System.out.println(ex);
}finally{
try{
br.close();
bw.close();
}catch(Exception e){}
}
}
}
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
FileReader 객체를 BufferedReader의 인자로 지정해서 BufferedReader 객체를 생성하고, FileWriter 객체를 BufferedWriter의 인자로 지정해서 BufferedWriter 객체를 생성했다. 이는 FileReader를 BufferedReader로 감싸므로써 FileReader에게 Buffer를 가진 것 같은 효과를 준 것이다. 물론, 마찬가지로 FileWriter도 BufferedWriter로 감싸므로써 Buffer를 가진 것처럼 해준다.
char[] buffer = new char[512];
int readcount = 0;
while((readcount = br.read(buffer)) != -1){
bw.write(buffer,0,readcount);
}
System.out.println("파일을 복사하였습니다.");
int readcount = 0;
while((readcount = br.read(buffer)) != -1){
bw.write(buffer,0,readcount);
}
System.out.println("파일을 복사하였습니다.");
BufferedReader에 있는 read() 메소드를 이용해서 문자 배열 형태로 읽어 들인 후, 읽어 들인 문자 배열을 BufferedWriter에 있는 writer() 메소드를 이용해서 출력한다.
'개인참고자료 > 자바(네트워크)' 카테고리의 다른 글
문자 스트림 - 키보드로부터 한 줄씩 입력 받아 파일에 저장(PrintWriter) (0) | 2008.07.14 |
---|---|
문자 스트림 - PrintWriter (0) | 2008.07.14 |
문자 스트림 - BufferedReader와 BufferedWriter (0) | 2008.07.14 |
문자 스트림 - 텍스트 파일 복사(FileReader, FileWriter) (0) | 2008.07.14 |
문자 스트림 - FileReader와 FileWriter (0) | 2008.07.14 |