객체를 파일 시스템에 저장..
변수 위주로 저장됨.
ArrayList를 저장할 경우 거기에 연결된 데이터형들도 저장되므로 편리.
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class UserInfo implements Serializable
{
int age;
String name;
String addr;
public UserInfo(int age, String name, String addr)
{
this.age = age;
this.name = name;
this.addr = addr;
}
@Override
public String toString()
{
return "UserInfo [age=" + age + ", name=" + name + ", addr=" + addr + "]";
}
}
public class SerialExam
{
public static void main(String[] args) throws Exception
{
//객체를 파일로 저장하는 단계
ObjectOutputStream os = new ObjectOutputStream
(
new BufferedOutputStream
(
new FileOutputStream("src/ex0801/io/aaa.ser")
)
);
//저장하기
os.writeObject(new UserInfo(20,"홍길동","서울"));
os.writeObject(new UserInfo(21,"홍길동2","서울2"));
os.writeObject(new UserInfo(22,"홍길동3","서울3"));
os.close();
System.out.println("직렬화 완료");
ObjectInputStream ois = new ObjectInputStream
(
new BufferedInputStream
(
new FileInputStream("src/ex0801/io/aaa.ser")
)
);
UserInfo aaa = (UserInfo)ois.readObject();
UserInfo bbb = (UserInfo)ois.readObject();
UserInfo ccc = (UserInfo)ois.readObject();
System.out.println(aaa);
System.out.println(bbb);
System.out.println(ccc);
ois.close();
}
}