자바

Object Stream

khon98 2020. 7. 14. 22:04

Object Stream

- 메모리상에 존재하는 객체를 송수신할 수 있는 필터 스트림이다

 

- 필터 스트림이므로 기본 스트림이 필요하다

 

객체 직렬화

- 메모리상에 존재하는 객체를 출력할 수 있는 형태로 만드는 것을 가리켜 직렬화라고 부른다

 

- 직렬화 하지 않은 객체를 스트림을 통해 입출력 할 수 없다

 

- 자바에서는 직렬화 하기 위해 Serialzable이라는 인터페이스를 구현하면 된다

 

ObjectStreamTest1.java

----------------------------------------------

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

 

try {

     

     TestClass t = new TestClass( );

     t.a = 100;

     t.b = 200;

 

     FileOutputStream fos = new FileOutputStream("c:\\test\\d.txt");

     ObjectOutputStream oos = new ObjectOutputStream(fos);

     oos.writerObject(t);

     oos.flush( ):

     oos.close( );

     fos.close( );

 

     FileInputStream fis = new FIleInputStream("c:\\test\\d.txt");

     ObjectInputStream ois = new ObjectInputStream(fis);

 

     TestClass t2 = (TestClass)ois.readObject( );

 

     System.out.println(t2.a);

     System.out.println(t2.b);

     t2.sayHi( );

}catch(Exception e) { }

 

class TestClass implements Serializable {

 

    int a;

    int b;

 

    public void sayHi( ) {

         System.out.println("안녕하세요");

    }

}

----------------------------------------------

 

Console

----------------------------------------------

100

200

안녕하세요

----------------------------------------------