标签:div one 没有 leo 查看 serial cti 不能 结果
一:对象的序列化
对象序列化就是把一个对象变为二进制数据流的一种方法。
一个类要想被序列化,就行必须实现java.io.Serializable接口。虽然这个接口中没有任何方法,就如同之前的cloneable接口一样。实现了这个接口之后,就表示这个类具有被序列化的能力。
/**
* 实现具有序列化能力的类
* */
public class SerializableDemo implements Serializable{
public SerializableDemo(){
}
public SerializableDemo(String name, int age){
this.name=name;
this.age=age;
}
@Override
public String toString(){
return "姓名:"+name+" 年龄:"+age;
}
private String name;
private int age;
}
/**
* 实现具有序列化能力的类
* */
public class Person implements Serializable{
public Person(){
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
@Override
public String toString(){
return "姓名:" + name + " 年龄:" + age;
}
private String name;
private int age;
}
/**
* 示范ObjectOutputStream
* */
public class ObjectOutputStreamDemo{
public static void main(String[] args) throws IOException{
File file = new File("d:" + File.separator + "hello.txt");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
file));
oos.writeObject(new Person("rollen", 20));
oos.close();
}
}
当我们查看产生的hello.txt的时候,看到的是乱码。因为是二进制文件。
虽然我们不能直接查看里面的内容,但是我们可以使用ObjectInputStream类查看:
/**
* ObjectInputStream示范
* */
public class ObjectInputStreamDemo{
public static void main(String[] args) throws Exception{
File file = new File("d:" + File.separator + "hello.txt");
ObjectInputStream input = new ObjectInputStream(new FileInputStream(
file));
Object obj = input.readObject();
input.close();
System.out.println(obj);
}
}
结果: 姓名:rollen 年龄:20
到底序列化什么内容呢?
其实只有属性会被序列化。
标签:div one 没有 leo 查看 serial cti 不能 结果
原文地址:http://www.cnblogs.com/ipetergo/p/7019514.html