zoukankan      html  css  js  c++  java
  • 序列化流与反序列化流,打印流

    序列化流与反序列化流

    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);

  • 相关阅读:
    C C++ POSIX 的一些 IO 操作
    左式堆的合并
    IDEA Maven 项目默认编译项目为JDK 1.5
    spring学习总结(一)_Ioc基础(中)
    SpringBoot(十五)_springboot实现预览pdf
    PostgreSQL之性能优化(转)
    PostgreSQL之Sequence序列(转)
    PostgreSQL之连接数修改
    CAS登陆过程UML中文版
    node 和npm 版本更新
  • 原文地址:https://www.cnblogs.com/hhthtt/p/10632586.html
Copyright © 2011-2022 走看看