시리얼화된 기본 작업

대상의 서열화 & 반서열화


1) 객체 서열화: Object를byte 서열로 변환하고 그 반대를 객체의 반서열화라고 한다
2) 서열화 흐름(Object OutputStream)은 필터 흐름 ------->writeObject 반서열화 흐름(ObjectInputStream)----->readObject
3) 서열화 인터페이스(Serializable) 대상은 반드시 서열화 인터페이스를 실현해야만 서열화를 할 수 있다. 그렇지 않으면 이 인터페이스에 이상이 발생할 수 있다. 어떠한 방법도 없다. 단지 하나의 표준일 뿐이다.
객체의 시리얼화:
//student Serializable 
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
Student stu = new Student("10001", "sabot", "16");
		oos.writeObject(stu);
		oos.flush();
		oos.close();

객체의 반서열화:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
		Student stu;
		stu = (Student)ois.readObject();
		System.out.println(stu);
		ois.close();

4)transient 키워드로 장식된 요소로 기본 서열화되지 않음
private transient String stuage;
// 
private void writeObject(java.io.ObjectOutputStream out)throws java.io.IOException{
		out.defaultWriteObject();// jvm 
		out.writeUTF(stuage);// stuage 
	}
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException{
		in.defaultReadObject();// jvm 
		this.stuage = in.readUTF();// stuage 
	}

5) 서열화된 중자류와 부류 구조 함수의 호출 문제
1. 하나의 클래스가 서열화 인터페이스를 실현하면 그 하위 클래스는 모두 서열화할 수 있다. 2. 하위 클래스에 대해 서열화 작업을 할 때 그 하위 클래스가 서열화 인터페이스를 실현하지 않으면 그 하위 클래스의 구조 함수가 호출된다.

좋은 웹페이지 즐겨찾기