• 序列化流与反序列化流,打印流


    序列化流与反序列化流

    ObjectOutputStream(序列化流) 将 Java 自定义对象写入 OutputStream。可以使用 ObjectInputStream(反序列化流) 读取对象。通过在流中使用文件可以实现对象的持久存储。

     

    ObjectOutputStream 序列化流

     

    writeObject() 将指定的对象写入ObjectOutputStream

     

    例:

    //创建对象

    person per=new person("小红帽",18);//自定义类

    //目的地

    FileOutputStream fos=new FileOutputStream("D:\text\per.txt");

    //创建序列化流

    ObjectOutputStream oos=new ObjectOutputStream(fos);

    //写入对象

    oos.writeObject(per);

    oos.close();

     

     

    ObjectInputStream 反序列化流

    readObject() 读取对象

    例:

    FileInputStream fis=new FileInputStream("D:\text\per.txt");

    //创建反序列化流

    ObjectInputStream ois=new ObjectInputStream(fis);

    //读对象

    Object obj=ois.readObject();

    System.out.println(obj);

    ois.close();

     

    序列化接口

    当一个对象要能被序列化,这个对象所属的类必须实现Serializable接口。否则会发生异常NotSerializableException异常。

    implements Serializable//继承序列化接口//标识作用

     

    瞬态关键字transient

    当一个类的对象需要被序列化时,某些属性不需要被序列化,这时不需要序列化的属性可以使用关键字transient修饰。只要被transient修饰了,序列化时这个属性就不会序列化了。

    同时静态修饰也不会被序列化,因为序列化是把对象数据进行持久化存储,而静态的属于类加载时的数据,不会被序列化。

    打印流

    字节打印流   PrintStream

    字符打印流   PrintWriter

     

    print(String str): 输出任意类型的数据,

    println(String str): 输出任意类型的数据,自动写入换行操作

     

    打印流自动刷新功能:

    //前提:传入输出流

    FileWriter fw=new FileWriter("D:\text\print.txt",true);

    //

    PrintWriter pw=new PrintWriter(fw,true);

  • 相关阅读:
    今天不谈技术,谈感情~
    外派金融公司
    OAuth2-简介
    Zookeeper实战-分布式锁
    Zookeeper-基础
    Minio-对象存储
    Redis实战-BloomFilter
    Redis实战-详细配置-优雅的使用Redis注解/RedisTemplate
    Redis-基础
    SpringBoot-表单验证-统一异常处理-自定义验证信息源
  • 原文地址:https://www.cnblogs.com/hhthtt/p/10632586.html
Copyright © 2020-2023  润新知