XMLEncoder
XMLEncoder (XML 직렬화 인코더)
XMLEncoder는 JavaBeans 명세의 XML 문서 형식을 사용해 빈의 상태를 XML 문서로 직렬화하는 데 사용되는 클래스예요. Encoder의 하위 클래스로, 객체 그래프를 XML로 기록할 때 사용돼요.
본문
XMLEncoder는 JavaBeans의 상태를 XML 문서로 저장해, 나중에 XMLDecoder로 다시 읽을 수 있게 해요. XML 문서는 특정 방식으로 구조화되어서, 사용자가 첫 요소를 어디에 배치하든 모든 데이터가 처음부터 재생될 수 있어요.
XMLEncoder는 또한 그래픽 사용자 인터페이스(GUI)의 영속화에도 사용돼요. 스윙(Swing)에서와 같이 다른 방식으로 직렬화할 수 없는 컴포넌트의 상태를 저장하는 데 특히 유용해요. 클래스에 대한 정보가 없으면 기본 영속성 델리게이트(DefaultPersistenceDelegate)를 사용해 공개 API 기반으로 상태를 저장해요. 클래스의 비공개 멤버는 저장되지 않아서, 다른 구현으로 바뀌어도 저장된 XML 문서는 유효하게 유지돼요.
주요 생성자와 메서드는 다음과 같아요.
public XMLEncoder(OutputStream out)
public void setExceptionListener(ExceptionListener exceptionListener)
public void setOwner(Object owner)
public void writeObject(Object o)
public void flush()
public void close()
writeObject(o)— 객체를 XML 문서에 기록해요.setOwner(owner)— own 된 문서 컨텍스트에서 참조할 owner 객체를 설정해요.flush()— 버퍼링된 XML을 출력 스트림에 기록해요.close()— 출력 스트림을 닫아요.
이 클래스는 빈 상태를 XML로 영속화하는 표준 수단이에요.