객체 직렬화는 생성한 객체를 바이트 형태로 다른 저장 장치등으로 내보내는 방법을 말한다.
예제로 확인하자.
우선 저장할 클래스를 하나 만들어 보자.
사원정보에 대한 클래스이다.
중요한것은 이 클래스를 직렬화 하겠다는것을 명시해야 하는데 이를 위해서 꼭 해당 클래스에 Serializable을 implements 받아야 한다.
그러면 사원정보 클래스를 직렬화하여 저장하는 클래스를 보자.
객체를 저장하는거지만 이것 또한 기본 바탕은 바이트 스트림이다. 따라서 저장할 파일을 지정하고 FileOutputStream 객체를 생성한 후 오브젝트 저장시 사용되는 ObjectOutputStream을 이용해서 객체 내용을 바이트 타입으로 파일로 내보낸다.
그리고 난후 writeObject(object reference)를 하면 저장 끝이다.
간단하다. 파일을 열어보면 바이트 형식으로 객체가 쓰여졌다.
그럼 잘 쓰여졌는지 확인을 하려면 읽어서 화면에 찍어보면 된다. 이때는 ObjectInputStream을 사용해서
읽을수 있다. readObject메소드를 사용하자. 하지만 해당 객체 타입으로 캐스팅 해야 한다.
emp = (Emp)ois.readObject()가 바로 이부분..
찍어보면 아래처럼 나온다. System.out.println(emp)이 부분을 -> System.out.println(emp.toString()); 적어도 상관없다.
오버라이딩 받은것 뿐이다.
'강좌 > JAVA I/O' 카테고리의 다른 글
JAVA I/O (자바입출력) - 랩퍼클래스 (Wrapper Class) 와 File클래스 (0) | 2013.03.30 |
---|---|
JAVA I/O (자바입출력) - PrintStream / PrintWrite 클래스 (0) | 2013.03.30 |
JAVA I/O (자바입출력) - FileReader와 FileWriter 클래스 (0) | 2013.03.29 |
JAVA I/O (자바입출력) - CharacterStream (0) | 2013.03.29 |
JAVA I/O (자바입출력) - RandomAccessFile (0) | 2013.03.29 |