看了这位大哥的总结有点收获,在此感谢!
实现序列化接口的该类,就是为了保证两个过程的结果版本一致性,即序列化时的类和反序列化出的类版本一致!
<span style="font-family:Microsoft YaHei;">/**
* 序列化类
* 类似于A端
* */
public class Person implements Serializable {
private static final long serialVersionUID=123456770L;
private String id;
private String name;
private int age= 23;
Person(){
}
Person(String id ,String name){
this.id=id;
this.name=name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + "]";
}
}
</span>
<span style="font-family:Microsoft YaHei;">
</span>
<pre name="code" class="java"><span style="font-family:Microsoft YaHei;">//序列化
public class SerialTest {
public static void main(String[] args) {
Person p = new Person("one","feng");
try {
FileOutputStream fos = new FileOutputStream("info.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(p);
oos.flush();
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}</span>
<span style="font-family:Microsoft YaHei;">//反序列化
public class DeSerialTest {
public static void main(String[] args) {
Person p = new Person();
try {
FileInputStream fis = new FileInputStream("info.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
p = (Person)ois.readObject();
ois.close();
System.out.println(p.getAge());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}</span>