2011. 7. 27. 11:15

자바 스트림(Java Stream), FileWriter와 FileReader 클래스로 파일에 쓰고, 읽기

import java.io.FileReader ;
import java.io.FileWriter ;
import java.io.File ;
import java.io.FileNotFoundException ;
import java.io.IOException ;

public class FileStreamTest {
    public static void main(String[] args)     {
        File file = new File("myfile.txt") ;

        try {
            if (file.exists()) {
                System.out.println("파일이 이미 존재합니다") ;
            }

            else {
                FileWriter fw = new FileWriter(file) ;
                fw.write("안녕하세요.") ;
                fw.flush() ;
                System.out.println("파일을 새로 만들었습니다.") ;
                fw.close() ;
            }            
        }

        catch (FileNotFoundException fnfe) {
            System.out.println("디스크 에러. 아따~, 파일을 생성할 수 없당께..") ;
            fnfe.printStackTrace() ;
        }

        catch (IOException ioe) {
            System.out.println("아따~, 파일 IO 에러가 발생했당께..") ;
            ioe.printStackTrace() ;
        }

        catch (Exception e) {
            System.out.println("아따~, 그냥 에러가 발생했당께..") ;
            e.printStackTrace() ;
        }

        try {
            FileReader fr = new FileReader(file) ;
            System.out.println("파일의 내용을 출력합니다.") ;

            int data ;

            while ((data = fr.read()) != -1) {
                char ch = (char)data ;
                System.out.print(ch) ;
            }

            System.out.println("\n") ;
            
            fr.close() ;
        }                

        catch (FileNotFoundException fnfe) {
            System.out.println("디스크 에러. 아따~, 파일을 찾을 수 없당께..") ;
            fnfe.printStackTrace() ;
        }

        catch (IOException ioe) {
            System.out.println("아따~, 파일 IO 에러가 발생했당께..") ;
            ioe.printStackTrace() ;
        }

        catch (Exception e) {
            System.out.println("아따~, 그냥 에러가 발생했당께..") ;
            e.printStackTrace() ;
        }
    }
}