javaオブジェクトの順序化

2316 ワード

Javaオブジェクトのプログレッシブ化はSerializableインターフェースを実現しなければなりません。プログレッシブとは、オブジェクトをプログレッシブにしてファイルに保存することです。例えば、d:\1.txtの中に保存されているのは属性です。アンチプログレッシブとは、ファイル内の属性を直接読み込むことです。
話を多くしないで、直接例を見ます。
import java.io.Serializable;

public class Student implements Serializable{//       
	private static final long serialVersionUID = 1L;//JDK      ,  JDK      
	private String name;
	private int age;
	
	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}
	
	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;
	}
}
 テストクラス:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStream;


public class Test2 {
	public static void main(String[] args) throws Exception{
		//        
		Student student=new Student("  ", 20);//     
		File file=new File("D:\\B.txt");//     
		OutputStream outputStream=new FileOutputStream(file);//      
		ObjectOutputStream objectOutputStream=new ObjectOutputStream(outputStream);//      
		objectOutputStream.writeObject(student);//          
		objectOutputStream.close();
		outputStream.close();
		
		//         
		InputStream inputStream=new FileInputStream(file);//   
		ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);//       
		Student s=(Student) objectInputStream.readObject();//             
		System.out.println(s.getName()+","+s.getAge());//     
		objectInputStream.close();
		inputStream.close();
	}
}
 実は、プログレッシブはオブジェクトの属性を保存しています。読み取りも読み取りの対象の属性です。
プログレッシブ:Object OutputStream
アンチプログレッシブ: Object InputStream 
一般的な対象は序列化を勧めません。これまでSerializableインターフェースは標識インターフェースだけです。中には何の方法もありません。jdkがアップグレードされると、以前書いたコードは全部変えなければなりません。面倒くさいです。