写入
获取ObjectOutputStream对象,new出来,构造参数:FileOutputStream对象目标文件
调用ObjectOutputStream对象的writeObject()方法,参数:要保存的对象
调用ObjectOutputStream对象的close()方法,关闭流
此时会报异常,NotSerialzeableException,是因为目标类没有实现Serializable接口,这个接口没有方法,称为标记接口,会在改变类之后,生成新的序列号,保存的文件读取时会显示错误信息InvalidClassException
读取
获取ObjectInputStream对象,new出来,构造参数:FileInputStream对象目标文件
调用ObjectInputStream对象的readobject()方法,得到保存的数据
import java.io.FileInputStream; java.io.FileNotFoundException; java.io.FileOutputStream; java.io.IOException; java.io.ObjectInputStream; java.io.ObjectOutputStream; java.io.Serializable; public class ObjectStreamDemo { /** * @param args * @throws Exception */ static void main(String[] args) throws Exception { writeObj(); readobj(); } * 保存对象 * IOException * FileNotFoundException void writeObj() Exception{ ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("person.object")); oos.writeObject(new Person("taoshihan",100)); } void readobj() Exception{ ObjectInputStream ois=new ObjectInputStream(new FileInputStream("person.object")); Person person=(Person) ois.readobject(); System.out.println(person);//输出 taoshihan:100 } } * 自定义的类 * @author taoshihan * */ class Person implements Serializable{ private String name; private int age; public Person(String name, age) { this.name=name; this.age=age; } @Override public String toString() { Todo Auto-generated method stub return name+":"+age; } }
PHP版:
<?PHP Person{ private $name; $agefunction __construct($name,){ $this->name=; $this->age=; } function toString(){ return $this->name.":".$this->age; } } $personObj=serialize()); echo $personObj; 输出 O:6:"Person":2:{s:12:"Personname";s:9:"taoshihan";s:11:"Personage";i:100;} $obj=unserialize($personObj); $obj->toString();输出 taoshihan:100
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。