• IO 流(二)


    目录

    字符流

    缓冲流

    转换流

    序列化对象


    字符流

    字符输入流 - 一次读取一个字符
     

     

     

     

     

     

     

     

     

    缓冲流

     缓冲流概述

    字节缓冲流性能优化原理:

    l 字节缓冲输入流 自带了 8KB缓冲池 以后我们直接从缓冲池读取数据,所以性能较好
    l 字节缓冲输出流 自带了 8KB缓冲池 数据就直接写入到缓冲池中去, 写数据 性能极高了

    字节缓冲流

    l 字节缓冲输入流: BufferedInputStream ,提高字节输入流读取数据的性能。
    l 字节缓冲输出流: BufferedOutputStream ,提高字节输出流读取数据的性能。

     

    1. 字节缓冲流为什么提高了操作数据的性能?
    l 字节缓冲流自带 8KB 缓冲区
    l 可以提高原始字节流、字符流读写数据的性能
    2. 字节缓冲流的功能如何调用?
    l public BufferedOutputStream ​( OutputStream os )
    l public BufferedInputStream ​( InputStream is )
    l 功能上并无很大变化,性能提升了。

     

    字符缓冲输入流

    l 字符缓冲输入流: BufferedReader
    l 作用:提高字符输入流读取数据的性能,除此之外多了按照行读取数据的功能。

     

    字符缓冲输出流

    l 字符缓冲输出流: BufferedWriter
    l 作用:提高字符输出流写取数据的性能,除此之外多了换行功能

     

    转换流

    1、如果代码编码和文件编码不一致,使用字符流直接读取还能不乱码吗?

    l 会乱码。

    2、如果如何解决呢?

    l使用字符输入转换流

    l可以提取文件(GBK)的原始字节流,原始字节不会存在问题。

                         然后把字节流以指定编码转换成字符输入流,这样字符输入流中的字符就不乱

               

     

     

     

     

    序列化对象

    对象序列化

    l 作用:以内存为基准, 把内存中的对象存储到磁盘文件中去,称为对象序列化。
    l 使用到的流是对象字节输出流: ObjectOutputStream

     

    1. 对象序列化的含义是什么?
    l 把对象数据存入到文件中去。
    2. 对象序列化用到了哪个流?
    l 对象字节输出流 ObjectOutputStram
    l public void writeObject (Object obj)
    3. 序列化对象的要求是怎么样的?
    l 对象必须实现序列化接口

     

     

    对象反序列化

    l 使用到的流是对象字节输入流: ObjectInputStream
    l 作用:以内存为基准, 把存储到磁盘文件中去的对象数据恢复成内存中的对象,称为对象反序列化

     

  • 相关阅读:
    HR350学习笔记(一)概览
    react - hooks中的setTimeout问题
    PaxCompiler语言的编译器
    CSS的calc函数不会还有人没有用吧
    从零开始:新手快速在国产操作系统中搭建高可用K8S(V1.28)集群落地实践
    实时目标检测新高地之#YOLOv7#更快更强的目标检测器
    MySQL常用函数汇总(字符串、时间函数等)
    Android12.0 app调用hal层接口功能实现系列三(frameworks层实现)
    工作常用sql 总结-长期更新
    android UI到系统揭秘
  • 原文地址:https://blog.csdn.net/qq_52153640/article/details/126503030