• JavaIO


    ● ObjectInputStream(InputStream in):反序列化 - 把存储的对象从设备中读出,对象是依赖于其所属的类的

    使用readObject()方法读取一个对象文件。使用对象的使用需要强转将obj转换为使用的对象类型

    ObjectOutputStream(OutputStream out):序列化 - 把对象进行持久的储存

    对象输出流使用writeObject(Object obj)方法,将一个obj对象(必须实现Serializable接口)写入到一个文件。

    ● Serializable序列化接口,用于给被序列化的类加入ID号,判断类和对象是否是同一个版本。

    可序列化类通过声明为"serialVersionUID"字段(该字段必须是静态static、最终final的long型字段)显示声明自己的serialVersionUID;
    如果序列化类未显示声明serialVersionUID,则序列化运行时将基于该类的各个方面计算的默认serialVersionUID值。

    - 强烈建议:所有可序列话的类都显示声明serialVersionUID;

    - transient:瞬态,不参与序列化;表示暂时的,这个属性不会被写入磁盘;

    package cn.itcast.io.p3.ObjectStream;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    
    import cn.itcast.io.p3.bean.Persion;
    
    public class ObjectStreamDemo {
    
        public static void main(String[] args) throws Exception {
            
            // writeObject();
            readObject();
    
        }
    
        public static void readObject() throws IOException, Exception{
            
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream("persion.object"));
            // 对象的反序列化。
            Persion obj = (Persion)ois.readObject();
            System.out.println(obj.getName()+":"+obj.getAge());
            
            ois.close();
        }
    
        public static void writeObject() throws IOException {
        
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("persion.object"));
            // ObjectOutputStream oos = new ObjectOutputStream(System.out);
            // 对象的序列化,将对象排队存储到硬盘上。序列化必须实现serializable接口
            oos.writeObject(new Persion("小强",30));
            
            oos.close();
        }
    }
  • 相关阅读:
    .NET题目(收集来自网络)
    c#反射
    c#泛型
    asp.net core 下载文件,上传excel文件
    remote: HTTP Basic: Access denied fatal: Authentication failed for'https'
    获取jwt(json web token)中存储的用户信息
    System.data.sqlclient.sqlexception:将截断字符串或二进制数据终止
    代码热更新
    左手坐标系 vs 右手坐标系
    GPU相关临时笔记
  • 原文地址:https://www.cnblogs.com/Dm920/p/12461722.html
Copyright © 2020-2023  润新知