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接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。只要设计一个保存一个读取功能就能解决上面说得所有问题。

  • 相关阅读:
    Zookeeper初见
    常见一致性协议(二)
    常见一致性协议(一)
    分布式理论基础
    expose a port on a living Docker container
    tomcat远程调试参数备忘
    bash: ifconfig: command not found
    解决 :java -version出现错误:“could not open `C:Program FilesJavajre7libamd64jvm.cfg”
    centos7 安装 NVIDIA Docker
    解决: httpclient ssl 验证导致死锁问题
  • 原文地址:https://www.cnblogs.com/pangpanghuan/p/6530549.html
Copyright © 2011-2022 走看看