package com.ssc.serializable;
import java.util.*;
import java.io.*;
public class SerialiizableMain {
public static void main(String[] args) {
try(/*인스턴스 단위에 파일에 기록할 수 있는 객체를 생성*/
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream("multiobject.txt"))
) {
//기록할 인스턴스를 생성
StudentDTO dto1 = new StudentDTO(1,"아담",new Date());
StudentDTO dto2 = new StudentDTO(2,"강진축구",new Date());
//기록할 인스턴스가 여러개면 하나의 list로 묶어준다
ArrayList<StudentDTO> list =
new ArrayList<>();
//리스트에 데이터 추가
list.add(dto1);
list.add(dto2);
//기록
oos.writeObject(list);
//종료
// oos.close();
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
try(//인스턴스 단위에 파일에 기록할 수 있는 객체를 생성
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream("multiobject.txt"))
) {
//기록을 할 때 List를 사용했으면 읽어올때도 List로 읽어야한다
ArrayList list = (ArrayList) ois.readObject();
for(Object obj : list) {
System.out.println(obj);
}
//종료
// ois.close();
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
}
}
package com.ssc.serializable;
import java.io.Serializable;
import java.util.*;
//인스턴스 단위로 읽고 쓰기가 가능한 클래스 - Serializable 인터페이스 때문
public class StudentDTO implements Serializable{
private int num;
private String name;
private Date birthday;
public StudentDTO() {
super();
// TODO Auto-generated constructor stub
}
public StudentDTO(int num, String name, Date birthday) {
super();
this.num = num;
this.name = name;
this.birthday = birthday;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "StudentDTO [num=" + num + ", name=" + name + ", birthday=" + birthday + "]";
}
}
댓글