Person 클래스
import java.io.Serializable;// 직렬화 되기 위해서는 반드시 Serializable을 implements 해야 한다.public class Person implements Serializable {private String name;private transient int age; // 직렬화 대상에서 제외public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}}
TestObjectInput 클래스 - 스트림형태로 파일에 저장된 객체를 다시 메모리상으로 호출하는 예제
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
public class TestObjectInput {
/**
* FileInputStream -> ObjectInputStream -> readObject();
* 이름 나이를 출력
*/
public static void main(String[] args) {
FileInputStream fis;
try {
fis = new FileInputStream("D://p.obj");
ObjectInputStream ois = new ObjectInputStream(fis);
Person p = (Person)ois.readObject();
System.out.println(p); // 객체를 Stream화할때 쓴쪽(output)과 읽는쪽(input)의 클래스(Person)이 최신화되어 있어야한다.
// 멤버 변수, 메서드 모두... 아니면?? InvalidClassException 발생
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TestObjectOutput - 직렬화된 객체의 스트림을 파일의 형태로 기록하는 예제
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class TestObjectOutput {
/**
* FileOutputStream - ObjectOutputStream // node - process
* @param args
*/
public static void main(String[] args) {
try {
FileOutputStream fos = new FileOutputStream("D://p.obj");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(new Person("아이유", 19));
System.out.println("object serial...");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
'Programming > java 고급과정' 카테고리의 다른 글
Dynamic Web Project의 .java, .class 경로 (0) | 2012.04.12 |
---|---|
<jsp:useBean> 액션태그 (0) | 2012.04.11 |
java 고급과정 7일차 (0) | 2012.03.13 |
java 고급과정 6일차 (0) | 2012.03.12 |
java 고급과정 5일차 (0) | 2012.03.09 |