import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectStreamTest2 {
private static String fileName = "D:\\person.obj";//매개변수 받은 객체를 파일로 출력
public static void writeobject(Object obj){
//인수로 받은 객체를 person.obj에 출력
//ObjectOutputStream 이용, 객체를 출력 - 객체 직렬화, 출력 대상 : instance 변수의 값들( attribute)
ObjectOutputStream oos =null;
try {
//연결하면서 필터까지 추가한 내용
oos = new ObjectOutputStream(new FileOutputStream(fileName));
//쓰기작업시작-writeObject(object)
oos.writeObject(obj);
//매개변수로 받은 객체를 넘겨준다.
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(oos!=null)
{
try {
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
PersonDTO p = new PersonDTO("id-111","112312","홍길동",123);
writeobject(p);//직렬화가 안되서 Exception오류가 나게 된다.
}
}
import java.io.Serializable;
public class PersonDTO implements Serializable{
private String id;
private String password;
private String name;
private int age;
//생성자, setter, getter tostring
public PersonDTO(){}
public PersonDTO(String id, String password, String name, int age) {
this.id = id;
this.password = password;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
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;
}
@Override
public String toString() {
return "PersonDTO [id=" + id + ", password=" + password + ", name="
+ name + ", age=" + age + "]";
}
}