zoukankan      html  css  js  c++  java
  • 对象的序列化与反序列化

    1、被序列化/发布序列化操作的对象,需要实现 Serializable 接口

    2、最好添加 private static final long serialVersionUID = 1L; 用于标记对象的版本

    3、代码演示

    package org.zln.seri;
    
    import org.apache.commons.lang3.builder.ToStringBuilder;
    
    import java.io.Serializable;
    
    /**
     * Created by sherry on 16/9/18.
     */
    public class Person implements Serializable{
    
        private static final long serialVersionUID = 1L;
    
        private String name;
        private int age;
    
        @Override
        public String toString() {
            return new ToStringBuilder(this)
                    .append("name", name)
                    .append("age", age)
                    .toString();
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    package org.zln.seri;
    
    import org.junit.Test;
    
    import java.io.*;
    import java.util.UUID;
    
    import static org.junit.Assert.*;
    
    /**
     * Created by sherry on 16/9/18.
     */
    public class PersonTest {
    
    
        private void writeObj(){
            String id = UUID.randomUUID().toString();
            Person person = new Person("张柳宁_"+id,27);
            try {
                File file = new File("person_"+id);
                System.out.println("当前对象文件:"+file.getAbsolutePath());
                ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file));
                objectOutputStream.writeObject(person);
                objectOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Test
        public void readObj(){
    
            writeObj();
    
            File[] files = new File(".").listFiles();
            for (File file:files){
                if (file.getName().startsWith("person")){
                    try {
                        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(file));
                        Person person = (Person) objectInputStream.readObject();
                        System.out.println(person);
    
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    }
                }
            }
    
            deleteObj();
        }
    
        private void deleteObj() {
            File[] files = new File(".").listFiles();
            for (File file : files) {
                if (file.getName().startsWith("person")) {
                    file.delete();
                    System.out.println("删除:" + file.getAbsolutePath());
                }
            }
        }
    
    }
  • 相关阅读:
    postman断言作用及怎么使用
    深入理解Spring MVC 思想
    serialVersionUID的作用以及如何用idea自动生成实体类的serialVersionUID
    HttpClient通过Post方式发送Json数据
    HttpClient获取Cookie的两种方式
    HTTPclient cookie的获取与设置
    【BIEE】11_根据显示指标展示不同报表
    【Excle】科学计数法快速还原
    【BIEE】10_资料库查看数据报错
    【BIEE】09_BIEE控制台乱码问题解决
  • 原文地址:https://www.cnblogs.com/sherrykid/p/5883307.html
Copyright © 2011-2022 走看看