zoukankan      html  css  js  c++  java
  • JAVA类的序列化

    作用:用于对象的持久化,将对象写到硬盘中,需要用的时候再反序列化取出来。 
    所谓序列化其实就是将程序中的数据(对象)通过某种方式,保存到本地中。 
    然后可以在程序关闭之后还保存程序的某个执行状态,方便在程序下次 
    执行的时候通过"反序列化"读取出来,并且能够还原数据的类型,从而延续程序退出时的状态。 
    一般来说,我们会使用序列化保存一些需要持久化的数据,当然如果这个数据会比较庞大的话, 
    我们就直接使用数据库了!所以,序列化实际上目前很多领域用的已经不多了,大部分使用 
    都已被数据库替代了! 

    如何序列化和反序列化:

    通过实现Serializable 接口来实现序列化

    public class Person implements Serializable{ 
    private String name; 
    private String sex; 
    
    public Person(String name,String sex){ 
    this.name=name; 
    this.sex=sex; 
    } 
    
    public String getName() { 
    return name; 
    } 
    
    public void setName(String name) { 
    this.name = name; 
    } 
    
    public String getSex() { 
    return sex; 
    } 
    
    public void setSex(String sex) { 
    this.sex = sex; 
    }    
    } 
    public class TestDemo { 
    
    public static void main(String[] args) { 
    //创建一个对象 
    Person people = new Person("张三","男"); 
    try { 
    //实例化ObjectOutputStream对象 
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\person.txt")); 
    //将对象写入文件 
    oos.writeObject(people); 
    oos.flush(); 
    oos.close(); 
    
    //实例化ObjectInputStream对象 
    ObjectInputStream ois=new ObjectInputStream(new FileInputStream("C:\person.txt")); 
    
    try { 
    //读取对象people,反序列化 
    Person p = (Person)ois.readObject(); 
    System.out.println("姓名:"+p.getName()); 
    System.out.println("性别:"+p.getSex()); 
    } catch (ClassNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    
    
    } catch (FileNotFoundException e) { 
    
    e.printStackTrace(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    } 
    
    } 
  • 相关阅读:
    单词 统计
    第九周周进度报告
    日常总结
    Docker 初识
    读书笔记
    《未来简史》有感
    自己的Java规范文档
    nginx自动部署脚本
    jdk 自动化脚本
    我Java学习时的模样(三)
  • 原文地址:https://www.cnblogs.com/bbglz/p/4559038.html
Copyright © 2011-2022 走看看