개인참고자료/자바(네트워크)

객체 스트림 - ObjectOutputStream와 ObjectInputStream

경진 2008. 7. 17. 08:47
ObjectOutputStream 클래스의 생성자와 메소드

ObjectOutputStream 클래스는 객체를 직렬화하기 위해서 사용된다.

ObjectOutputStream 클래스는 다음과 같이 선언되어 있다.

public class ObjectOutputStream extends OutputStream implements ObjectOutput, ObjectStreamConstants

ObjectOutputStream 클래스에 있는 생성자는 두 가지인데, 보통 OutputStream을 인자로 전달받는 생성자가 사용된다.

public ObjectOutputStream(OutputStream out) throws IOException

ObjectOutputStream의 생성자는 인자로 OutputStream을 인자로 전달받는다는 것은 OutputStream을 상받은 어떤 객체든지 모두 받아들일 수 있음을 의미한다. 즉, FileOutputStream이 인자로 지정될 경우에는 파일에, 네트워크에 출력할 수 있는 OutputStream을 인자로 지정할 경우에는 네트워크에 전송하게 된다.

ObjectOutputStream의 중요 메소드

메소드 설명
public final void writeObject(Object obj) throws IOException ObjectOutputStream에 있는 가장 중요한 메소드다. 인자로 지정된 객체를 직렬화해서 전송한다.
public void reset() throws IOException 스트림을 방금전에 생성된 것처럼 초기 상태로 만든다. 네트워크 프로그래밍에서 사용할 때에는 writeObject() 메소드를 호출한 후 반드시 호출해 줘야 한다.
public void flush() throws IOException 전송해야 할 데이터를 버퍼링함으로써 OBjectInputStream에서 읽어 들이지 못하는 경우가 발생할 수 있다. 이런 문제를 해결하기 위해서 네트워크 프로그래밍에서 사용할 때에는 wirteObject() 메소드를 호출한 후 flush() 메소드를 바로 호출해줘야 한다.

ObjectInputStream 클래스의 생성자와 메소드

ObjectInputStream 클래스는 전송받은 데이터를 역직렬화 할 경우에 사용된다. ObjectInputStream은 다음과 같이 선언되어 있다.

public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants

ObjectInputStream 클래스에 있는 생성자는 두 가지인데, 보통 InputStream을 인자로 전달하는 생성자를 사용한다.

public ObjectInputStream(InputStream in) throws IOException

ObjectInputStream의 생성자가 인자로 InputStream을 받아들인다는 것은 InputStream을 상속 받은 어떤 객체든지 받아들일 수 있음을 의미한다.

ObjectInputSTream의 중요메소드

메소드 설명
public final Object readObject() throws IOException ObjectInputStream에 있는 가장중요한 메소드다.
데이타를 읽어 들여 역직렬화한다.