• java中的序列化和反序列化


    package cn.zhou;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    
    /*
     *一、 序列化?
     *------------ 对象存到硬盘上!  写 write
     * 对象中的数据,以流的形式 ,【写入到文件中保存的过程】!
     * 
     * 方法 ObjectOutputStream         readObject(); 读取对象。
     *
     *
     *二、反序列化?
     *-------------读取对象! 读  read  
     *在文件中,以流的形式 将对象读取出来。
     *
     *方法 ObjectInputStream 
     *
     *【注意!】
     *顺序问题 ,先创建 ,再读取。 两个方法写好,先运行序列化!否则异常!
     *
     *
     *三、阻止成员变量序列化?
     *        transient  关键字!  
     *        在成员变量前面修饰!
     *
     *
     *四、异常问题 【java.io.NotSerializableException:】
     *    java.io.NotSerializableException:异常,
     *    创建的PresonDemo类未实现Serializable接口,启动服务器会报此异常,
     *    对代码功能没影响,或者说暂时未发现有什么影响。
    
        要解决此异常,可通过实现该接口解决。
     * 
     */
    public class 序列化 {
        public static void main(String[] args) throws IOException, ClassNotFoundException {
            run();
            run01();        
        }
        //2.反序列化 ObjectInputStream  读! read
        private static void run01() throws IOException, ClassNotFoundException{
                                                                                                    //1.序列化 创建文件一步到位!
            ObjectInputStream a1=new ObjectInputStream(new FileInputStream("d:\game\sos.txt"));
                                                                                                    //2.readObject(); 读取对象。
            Object a=a1.readObject();
                                                                                                    //3.输出值
            System.out.println(a);    
            a1.close();
        }
        //1.序列化流 outputstream 写
        private static void run() throws IOException{
                                                                                                    //创建文件                                                                    
            FileOutputStream a=new FileOutputStream("d:\game\qqq.txt");
                                                                                                    //序列化
            ObjectOutputStream a1=new ObjectOutputStream(new FileOutputStream("d:\game\qqq.txt"));
                                                                                                    //在外部新建PresonDemo类  添加数据
            PresonDemo p=new PresonDemo("张三", 23);
                                                                                                    //关闭流
            a1.close();    
        }    
    }
  • 相关阅读:
    react 中cookie的使用
    使用react-router-dom 来搭建react路由
    取消浏览器的自动缓存
    vue 的$nextTick方法,与$set()方法
    vue监听data以及prop中的参数变化
    iview树的修改某个节点,树刷新后自动展开你刚才展开的所有节点
    Linux vim常用命令
    Linux yum源配置
    博客园鼠标点击特效
    Linux 简介
  • 原文地址:https://www.cnblogs.com/ZXF6/p/10610649.html
Copyright © 2020-2023  润新知