toggle menu

JAVA 정리 - 직렬화

2012. 8. 1. 16:34 JAVA


객체를 파일 시스템에 저장..
변수 위주로 저장됨.

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();
	}

}


JAVA 관련 포스팅 더보기