ObjectOutputStream (인스턴스 저장), 파일에 객체를 저장(직렬화)하는 경우

CODEDRAGON Development/Java

반응형

 

  

ObjectOutputStream (인스턴스 저장)

·       ObjectOutput 인터페이스를 구현한 클래스로 객체를 파일에 기록 할수 있는 클래스입니다.

·       바이트출력 스트림과 연결되어 객체를 직렬화합니다.

·       ObjectOutput 인터페이스는 writeObject(Object obj) 메서드를 포함하고 있는데 이 메서드가 객체의 데이터를 직렬화 시켜주는 메서드(직렬화 메서드)입니다.

·       만약 obj Serializable 인터페이스로 구현되어 있지 않다면 NotSerializableException 예외가 발생합니다.

·       직렬화된 데이터를 저장하는 파일 확장자는 serialization의 약자인 ".ser"로 설정하는것이 관례입니다.

 

 

public final void writeObject(Object obj) throws IOException{}

 

 


 

 

 

Class ObjectOutputStream

https://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutputStream.html

 

 

 

파일에 객체를 저장(직렬화)하는 경우

object.ser파일에 UserInfo클래스의 객체를 직렬화하여 저장하기

//object.ser파일에 저장하는 출력스트림(FileOutputStream) 생성합니다.

FileOutputStream fos = new FileOutputStream("object.ser");

//fos 기반스트림으로 해서 ObjectOutputStream 생성합니다.

ObjectOutputStream oos = new ObjectOutputStream(fos);

//ObjectOutputStream writeOject()메소드로 객체를 쓰면 객체가 파일에 직렬화되어 저장됩니다.

oos.writeOject(new UserInfo());