Java序列化技術
用序列化來存儲對象。
先定義一個用來序列化的類:
package io.xuliehua;
import java.io.*;
public class Student implements Serializable{
private String name;
private String ID;
private int age;
private String specialty;
public Student(String name, String ID, int age, String specialty){
this.name=name;
this.ID=ID;
this.age=age;
this.specialty=specialty;
}
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSpecialty() {
return specialty;
}
public void setSpecialty(String specialty) {
this.specialty = specialty;
}
public String toString(){
return "姓名:"+name+" 學號:"+ID+" 年齡:"+age+" 專業:"+specialty;
}
}
package io.xuliehua;
import java.io.*;
public class ObjectFileTest {
public static void main(String[] args) {
Student st = new Student("周勇","20140101",18,"計算機");
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("save.dat"));
out.writeObject(st);
out.close();
ObjectInputStream in = new ObjectInputStream(new FileInputStream("save.dat"));
Student pupil = (Student)in.readObject();
in.close();
System.out.println(pupil);
System.out.println("姓名:"+pupil.getName());
System.out.println("學號:"+pupil.getID());
System.out.println("年齡:"+pupil.getAge());
System.out.println("專業:"+pupil.getSpecialty());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
}
Java序列化技術