MisoBoy Blog...

FileWriter 클래스를 이용하여 문자 데이터를 파일에 쓰는 프로그램 본문

Java

FileWriter 클래스를 이용하여 문자 데이터를 파일에 쓰는 프로그램

misoboy 2011. 7. 11. 20:23

자~ 저번에는 FileReader 클래스를 사용하여 파일에 있는 데이터를 읽어오는 프로그램을 만들어 보았습니다.
이번에는 FileWriter 클래스를 이용하여 문제 데이터를 파일에 쓰는 프로그램을 만들어 보겠습니다.
파일을 읽을 때와 마찬가지로 파일로 데이터를 출력할 때도 세 단계의 작업이 필요합니다.
파일을 열고, 파일에 데이터를 쓰고, 파일을 닫는 작업 입니다.
파일을 열고 난 다음에는 writer 라는 메소드를 이용해서 파일에 데이터를 쓸 수 있습니다.
그럼 FileWriter 클래스에 대해 알아보도록 하겠습니다. 
우선 Document API 로 가서 FileWriter 를 찾아 볼까요~



Doucument API에 들어가면
문자 데이터를 파일에 작성해야 하니 입출력 클래스에 있겠죠?
JavaIO -> FileWriter 를 찾아 들어갑니다. 



잘 찾아 들어가셧죠?
그 다음 Constructor Summary 부분을 봅시다.
FileWriter (File file) 가 있습니다.
어떤 기능을 하는지 세부 내용을 보기 위해 또 클릭 합니다~ 
이 외의 세부적인 기능은 API를 둘러보시기 바랍니다. 



public FileWriter(File file) throws IOException
저번에 사용 했던 FileReader 과 달리 FileWriter 는 IOException 을 발생 시키네요 
그럼 숙지하고 이제 코딩을 시작 해 봅시다. 



 1  import java.io.FileWriter;
 2  import Java.io.IOException;
 3  
 4
 5  public class WriterExample{ 
 6       public static void main(String [] args){
 7              FileWriter writer = null;
 8               try{
 9                     writer = new FileWriter("파일명.txt");
10                    char [] array = { 'M', 'I', 'S', 'O', 'B', 'O', 'Y',
11                                      'T', 'I', 'S', 'T', 'O', 'R', 'Y'};
12                       for (int cnt = 0; cnt < array.length; cnt++)
13                            writer.write(array[cnt]);
14                 }
15              }catch(IOException ioe){
16                 System.out.println("파일로 출력할 수 없습니다.");
17              }finally{
18                  try{
19                      writer.close();
20                  }catch(Exception e){
21                  }
22             }
23       }
24 }                      

이번에는 배열을 사용하여 출력 하는 방법을 선택 했습니다.
FileWriter 클래스에는 char 배열을 모든 파라미터로 받는 write 메소드도 있습니다.
그 메소드는 파라미터로 받은 char 배열의 모든 문자를 파일로 출력하는 기능을 합니다.
그 메소드를 이용하면 12~13라인을 writer.write(array); 로 짧게 사용할 수 있습니다.

7라인 -> FileWriter 를 생성자로 활용합니다.

8라인 -> 아까 Doucument API FileWriter 부분에 IOException 을 발생 시킨다 했었죠? 그러므로 try~ catch 를 사용하였습니다.

9라인 -> 파일을 열기 위해 FileWriter 선언 합니다.

10라인 -> char 타입의 array 배열을 만들었습니다.

12라인 -> 배열의 문자들을 파일에 write 하기위해선 반복문이 필요하겠죠?

13라인 -> FileWriter 클래스의 write 메서드를 사용하였습니다.

15라인 -> Doucument API 에서 봤듯이 IOException 을 선언 하였습니다.
              (FileWriter 생성자는 FileReader 생성자와는 달리 FileNotFoundException 이 아니라 IOException 을
               발생하기 때문에, IOException 을 처리하는 catch 절 하나로 try 블록 안에서 발생하는 모든 익셉션을
               처리할 수 있습니다.)

17라인 -> IOException 이 발생하든 말든 finally 로 실행 되게 하였습니다.

18라인 -> 이제 writer 를 닫는데도 익셉션이 발생 하겠죠~~ 그럼 try ~ catch 를 사용 합니다.

19라인 -> writer 를 close 해줍니다.

20라인 -> 마지막은 범위가 큰 Exception 으로 예외처리 해줍니다.

그리고 파일을 열 때 원래 있던 파일의 내용을 유지하고 싶으면 FileWriter 생성자의 두번째 파라미터로 true 값을 넘겨주면 됩니다.
ex) FileWriter writer = new FileWriter("파일명.txt", true);

이상 FileWriter 클래스를 이용해서 문자 데이터를 파일에 쓰는 프로그램 이었습니다.


기타 문의 사항은 Facebook , blog comment, e-mail 로 보내주시면 되겠습니다.
 

감사합니다.