public class Student implements Serializable{
private String stuno;
private String stnname;
private transient int stuage;//transient修饰的属性不会进行jvm默认的序列化,也可以自己完成序列化
public Student(){
}
@Override
public String toString() {
return "Student [stuno=" + stuno + ", stnname=" + stnname + ", stuage="
+ stuage + "]";
}
public Student(String stuno, String stnname, int stuage) {
super();
this.stuno = stuno;
this.stnname = stnname;
this.stuage = stuage;
}
public String getStuno() {
return stuno;
}
public void setStuno(String stuno) {
this.stuno = stuno;
}
public String getStnname() {
return stnname;
}
public void setStnname(String stnname) {
this.stnname = stnname;
}
public int getStuage() {
return stuage;
}
public void setStuage(int stuage) {
this.stuage = stuage;
}
private void WriteObject(java.io.ObjectOutputStream s)throws java.io.IOException{
s.defaultWriteObject();//把虚拟机能默认进行虚拟化的元素进行序列化操作
s.writeInt(stuage);//自己完成transient序列化修饰的属性
}
private void ReadObject(java.io.ObjectInputStream s)throws java.io.IOException, ClassNotFoundException{
s.defaultReadObject();
this.stuage=s.readInt();
}
}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectSeriaDemo {
public static void main(String[] args)throws IOException, ClassNotFoundException{
String file="demo/obj.bat";
ObjectOutputStream oos=new ObjectOutputStream(
new FileOutputStream(file));
Student stu= new Student("1001","张三",20);
oos.writeObject(stu);
oos.flush();
oos.close();
ObjectInputStream ois=new ObjectInputStream(
new FileInputStream(file));
Student stu1=(Student)ois.readObject();
System.out.println(stu1);
ois.close();
}
}
WriteObject和ReadObject方法写错了,首字母应该小写