2011. 7. 27. 11:44

자바 스트림(Java Stream), 객체를 파일에 쓰고, 읽는 ObjectOutputStream과 ObjectInputStream

import java.io.FileNotFoundException ;
import java.io.FileOutputStream ;
import java.io.FileInputStream ;
import java.io.IOException ;
import java.io.ObjectOutputStream ;
import java.io.ObjectInputStream ;

public class ObjectStream {
    public static void main(String[] args)     {
        FileOutputStream fos = null ;
        FileInputStream fis = null ;
        ObjectOutputStream oos = null ;
        ObjectInputStream ois = null ;

        int no = 1 ;
        String name = "백동수" ;
        String jobGrade = "무사" ;
        String email = "???" ;

        try {
            fos = new FileOutputStream("ObjectOutput.dat"true) ;
            oos = new ObjectOutputStream(fos) ;

            oos.writeObject(no) ;
            oos.writeObject(name) ;
            oos.writeObject(jobGrade) ;
            oos.writeObject(email) ;

            oos.close() ;
            fos.close() ;
        }
        
        catch (FileNotFoundException e) {
            e.printStackTrace() ;
        }

        catch (IOException e) {
            e.printStackTrace() ;
        }

        try {
            fis = new FileInputStream("ObjectOutput.dat") ;
            ois = new ObjectInputStream(fis) ;

            no = (Integer)ois.readObject() ;
            name = (String)ois.readObject() ;
            jobGrade = (String)ois.readObject() ;
            email = (String)ois.readObject() ;

            System.out.println("번호 \t 이름 \t 메일") ;
            System.out.println("------------------------------------------------------------") ;
            System.out.println(no + "\t" + name + "\t" + jobGrade + "\t" + email) ;

            ois.close() ;
            fis.close() ;
        }

        catch (ClassNotFoundException e) {
            e.printStackTrace() ;
        }
        
        catch (FileNotFoundException e) {
            e.printStackTrace() ;
        }

        catch (IOException e) {
            e.printStackTrace() ;
        }

    }
}