Java/I_O
Object Input Output Stream
krvision
2011. 12. 11. 14:08
import java.io.Serializable; import static java.lang.System.out; // ObjectInputStream / ObjectOutputStream 예제 public class Employee implements Serializable //객체를 저장하기위해 반드시 구현 { String name; int age; transient int salary; public Employee() { } public Employee(String n, int a, int s) { name=n; age=a; salary=s; } public void print() { out.println("---------Record for" +name+"--------"); out.println(" Name: " +name); out.println(" Age: " +age); out.println(" : " +salary); } }//////////////////////////////////////////////////////////////////// import java.io.*; import java.awt.*; import java.util.*; // 기능 : 객체를 파일로 저장 class SaveEmp { public static void main(String[] args) throws IOException { Employee e1=new Employee("홍길동", 22, 3000); Employee e2=new Employee("임꺽정", 33, 4000); String fileName="obj.ser"; FileOutputStream fos =new FileOutputStream(fileName); ObjectOutputStream oos = new ObjectOutputStream(fos); //DataOutput인터페이스를 구현하고 있는 스트림. oos.writeObject(e1); oos.writeObject(e2); oos.writeObject(new Date()); Frame f=new Frame("오브젝트 스트림"); oos.writeObject(f); oos.flush(); oos.close(); fos.close(); }//main()----------- }////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// import java.io.*; import java.awt.*; import java.util.*; // 기능 : 객체를 파일로 저장 class ReadEmp { public static void main(String[] args) throws Exception { FileInputStream fis=new FileInputStream("obj.ser"); ObjectInputStream ois=new ObjectInputStream(fis); Object o1=ois.readObject(); Employee e1=(Employee)o1; Employee e2=(Employee)ois.readObject(); Date d=(Date)ois.readObject(); Frame f=(Frame)ois.readObject(); e1.print(); e2.print(); System.out.println("저장된 객체 시간:"+d.toString()); System.out.println("현재 시간:"+new Date().toString()); f.setSize(200,200); f.setVisible(true); fis.close(); ois.close(); } }