微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[javaSE] IO流对象序列化

写入

获取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 举报,一经查实,本站将立刻删除。

相关推荐