zoukankan      html  css  js  c++  java
  • Java中对文件的序列化和反序列化

    public class ObjectSaver {
        public static void main(String[] args) throws Exception {
            /*其中的  D:\objectFile.obj 表示存放序列化对象的文件*/
    
    
            //序列化对象
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("c:\test\objectFile.obj"));
            Customer customer = new Customer("王麻子", 24);
            out.writeObject("你好!");    //写入字面值常量
            out.writeObject(new Date());    //写入匿名Date对象
            out.writeObject(customer);    //写入customer对象
            out.close();
    
    
            //反序列化对象
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("c:\test\objectFile.obj"));
            System.out.println("obj1 " + (String) in.readObject());    //读取字面值常量
            System.out.println("obj2 " + (Date) in.readObject());    //读取匿名Date对象
            Customer obj3 = (Customer) in.readObject();    //读取customer对象
            System.out.println("obj3 " + obj3);
            in.close();
        }
    }
    
    class Customer implements Serializable {
        private String name;
        private int age;
        public Customer(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String toString() {
            return "name=" + name + ", age=" + age;
        }
    }

     所谓的Serializable,就是java提供的通用数据保存和读取的接口。至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了。这样子,任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。只要设计一个保存一个读取功能就能解决上面说得所有问题。

  • 相关阅读:
    FSBQPIDMI总线的区别
    为什么PCI-e比SATA快这么多?
    chage命令管理用户口令时效
    账户管理groupadd groupmod groupdel usermod usermod userdel
    linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
    RPM常见用法
    智力逻辑题
    Android ROM 制作教程
    智能家居项目(2):项目project框架的搭建
    5999卖999!是噱头还是颠覆
  • 原文地址:https://www.cnblogs.com/pangpanghuan/p/6530549.html
Copyright © 2011-2022 走看看