* 객체 직렬화란?
객체(Object)자체를 어딘가에 저장, 기록하여 다른 프로그램(혹은 다른 클래스)에서 사용할 수 있도록 하는 것이다. 자바에서는 객체 직렬화를 이용하여 객체를 파일(바이너리)로 저장할 수 도 있고 객체 자체를 전송할 수 도 있다.
객체 직렬화를 이용하는 방법은 직렬화 하려는 객체에 Serializable 인터페이스를 구현(implements)하여 만들 수 있다. Serializable 인터페이스는 인터페이스이나 따로 구현해야 할 것이 없으므로 implements만 하면 된다. 사용은 java.io의 ObjectOutputStream, ObjectInputStream을 이용한다.
// SerialClass.java 직렬화할 클래스 정의
import java.io.*;
public class SerialClass implements Serializable {
private String name;
private int age;
public SerialClass(String _name, int _age) {
name = _name;
age = _age;
}
public String toString() {
return "당신의 이름은 "+name+"이고 나이는 "+age+"입니다.";
}
}
// Test.java SerialClass를 SerialClass.ser 파일로 직렬화 함
import java.io.*;
public class Test {
public static void main(String args[]) throws Exception {
SerialClass serial = new SerialClass("곽민기", 20);
SerialClass serial2 = new SerialClass("홍길동", 50);
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
"SerialClass.ser"));
out.writeObject(serial);
out.writeObject(serial2);
out.close();
}
}
// Test2.java SerialClass.ser파일로부터 SerialClass클래스로 복구
import java.io.*;
public class Test2 {
public static void main(String args[]) throws Exception {
ObjectInputStream in= new ObjectInputStream(new FileInputStream(
"SerialClass.ser"));
SerialClass serial = (SerialClass)in.readObject();
SerialClass serial2 = (SerialClass)in.readObject();
System.out.println(serial.name);
System.out.println(serial2.age);
}
}
출처 : http://blog.naver.com/ykstyle2000?Redirect=Log&logNo=50012255021
'Java' 카테고리의 다른 글
[Java] 이클립스 Tab -> Space변환 (0) | 2009.06.08 |
---|---|
[Java] StringBuffer와 StringBuilder 테스트 (0) | 2009.06.01 |
[Java] 현재 날짜,시간 과 하루전 날짜 구하기 (0) | 2009.05.25 |
[Java] StringBuffer와 StringBuilder (0) | 2009.05.25 |
[Java] wav파일 실행 시키기!! (1) | 2009.05.20 |