키보드로부터 한 줄씩 입력 받아 파일에 저장하기
키보드로부터 한 줄 씩 입력받아 파일에 저장하는 예제다. 키보드로부터 한 줄씩 입력 받으려면 System.in과 BufferedReader의 readLine() 메소드를 이용해야 하고 파일에 읽어 들인 내용을 저장하려면 FileWriter, BufferedReader, PrintWriter를 이용해야 한다.
System.in을 InputStreamReader의 생성자에 인자로 전달함으로써 문자 단위로 읽어 들이는 Reader로 변환하고, 생성된 InputStreamReader를 BufferedReader의 생성자에 전달함으로써 한 줄 씩 입력받는 readLine() 메소드를 사용할 수 있게 했다.
args[0] 파일명에 출력하는 FileWriter 객체를 생성한 후, BufferedWriter의 생성자에 FileWriter 객체를 전달함으로써 버퍼를 사용하게 해서 병목현상을 줄일 수 있게 했고, 이러한 BufferedWriter 객체를 다시 PrintWriter에게 전달함으로써 다양한 출력 메소드를 사용할 수 있게 했다.
BufferedReader에 있는 readLine 메소드는 개행문자를 만날 때까지 읽어 들여 개행문자를 삭제한 문자열을 반환한다. 파일의 끝을 만나면 null 값을 반환하게 된다. 이렇게 읽어 들인 문자열은 PrintWriter에 있는 println() 메소드를 이용해서 출력한다 . 이때 중요한 것은 문자열 뒤에 개행문자를 붙여서 출력하는 것이다.
키보드로부터 한 줄 씩 입력받아 파일에 저장하는 예제다. 키보드로부터 한 줄씩 입력 받으려면 System.in과 BufferedReader의 readLine() 메소드를 이용해야 하고 파일에 읽어 들인 내용을 저장하려면 FileWriter, BufferedReader, PrintWriter를 이용해야 한다.
import java.io.*;
public class LineWriter {
public static void main(String[] args) {
if(args.length != 1){
System.out.println("사용법 : java LineWriter 파일명");
System.exit(0);
} //if
BufferedReader br = null;
PrintWriter pw = null;
try{
br = new BufferedReader(new InputStreamReader(System.in));
pw = new PrintWriter(new BufferedWriter(new FileWriter(args[0])));
String line = null;
while((line = br.readLine()) != null){
System.out.println("읽어들인 문자열 :" + line);
pw.println(line);
}
}catch(Exception ex){
System.out.println(ex);
}finally{
try{
pw.close();
}catch(Exception e){}
}
} // main
}
public class LineWriter {
public static void main(String[] args) {
if(args.length != 1){
System.out.println("사용법 : java LineWriter 파일명");
System.exit(0);
} //if
BufferedReader br = null;
PrintWriter pw = null;
try{
br = new BufferedReader(new InputStreamReader(System.in));
pw = new PrintWriter(new BufferedWriter(new FileWriter(args[0])));
String line = null;
while((line = br.readLine()) != null){
System.out.println("읽어들인 문자열 :" + line);
pw.println(line);
}
}catch(Exception ex){
System.out.println(ex);
}finally{
try{
pw.close();
}catch(Exception e){}
}
} // main
}
br = new BufferedReader(new InputStreamReader(System.in));
System.in을 InputStreamReader의 생성자에 인자로 전달함으로써 문자 단위로 읽어 들이는 Reader로 변환하고, 생성된 InputStreamReader를 BufferedReader의 생성자에 전달함으로써 한 줄 씩 입력받는 readLine() 메소드를 사용할 수 있게 했다.
pw = new PrintWriter(new BufferedWriter(new FileWriter(args[0])));
args[0] 파일명에 출력하는 FileWriter 객체를 생성한 후, BufferedWriter의 생성자에 FileWriter 객체를 전달함으로써 버퍼를 사용하게 해서 병목현상을 줄일 수 있게 했고, 이러한 BufferedWriter 객체를 다시 PrintWriter에게 전달함으로써 다양한 출력 메소드를 사용할 수 있게 했다.
String line = null;
while((line = br.readLine()) != null){
System.out.println("읽어들인 문자열 :" + line);
pw.println(line);
}
while((line = br.readLine()) != null){
System.out.println("읽어들인 문자열 :" + line);
pw.println(line);
}
BufferedReader에 있는 readLine 메소드는 개행문자를 만날 때까지 읽어 들여 개행문자를 삭제한 문자열을 반환한다. 파일의 끝을 만나면 null 값을 반환하게 된다. 이렇게 읽어 들인 문자열은 PrintWriter에 있는 println() 메소드를 이용해서 출력한다 . 이때 중요한 것은 문자열 뒤에 개행문자를 붙여서 출력하는 것이다.
'개인참고자료 > 자바(네트워크)' 카테고리의 다른 글
문자 스트림 - Char 배열 형태로 만든 후 출력하기(CharArrayReader, CharArrayWriter) (0) | 2008.07.14 |
---|---|
문자 스트림 - CharArrayReader와 CharArrayWriter (0) | 2008.07.14 |
문자 스트림 - PrintWriter (0) | 2008.07.14 |
문자 스트림 - 파일 복사 개선(BufferedReader, BufferedWriter) (0) | 2008.07.14 |
문자 스트림 - BufferedReader와 BufferedWriter (0) | 2008.07.14 |