• I/O————对象流


    对象流指的是可以直接把一个对象以流的形式传输给其他的介质,比如硬盘 

    一个对象以流的形式进行传输,叫做序列化。 该对象所对应的类,必须是实现Serializable接口

    对象的序列化与反序列化就是从文件中使用对象输出流和对象输入流保存、读出对象

     

    新建一个Hero类实现Serializable接口

    public class Hero implements Serializable{
        //表示当前类的版本,若类发生了变化则修改它的值
        private static final long versionId=1l;
        public String name;
        public float hp;
        }

    测试类:

    public class ObjectStreamTest {
    
        public static void main(String[] args) {
            Hero hero = new Hero();
            hero.name="亚索";
            hero.hp=616;
            File file = new File("D:\lolfilder\objectstream.txt");
            try(
                    //创建对象输出流
                    FileOutputStream fos = new FileOutputStream(file);
                    ObjectOutputStream oos = new ObjectOutputStream(fos);
                    //创建对象输入流
                    FileInputStream fis = new FileInputStream(file);
                    ObjectInputStream ois = new ObjectInputStream(fis);
    
                    
                    ) 
            {
                oos.writeObject(hero);
                Hero hero2 = (Hero)ois.readObject();
                System.out.println(hero2.name);
                System.out.println(hero2.hp);
                
            } catch (Exception e) {
                e.printStackTrace();
            }
           }
    }

    其中对象保存在文件中的结果:(ObjectOutputStream/ObjectInputStream 是基于二进制流的序列化,序列化之后内容只是二进制数据,另外,它们不专门为文件准备的,可以直接输出到 socket 流,那些是给机器读写的,没必要整成人能看懂的文本文件)

  • 相关阅读:
    单例模式
    collections额外数据类型
    logging的简单使用
    杂记
    字符编码
    面向对象编程简介
    logging模块
    re与subprocess模块
    oepnpyxl模块 与excle交互
    json序列化模块
  • 原文地址:https://www.cnblogs.com/yeyangtao/p/10807972.html
Copyright © 2020-2023  润新知