• 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 作用:以内存为基准, 把存储到磁盘文件中去的对象数据恢复成内存中的对象,称为对象反序列化

     

  • 相关阅读:
    AI芯片软件定义硬件架构
    微信小程序| AIGC之动手实现ChatGPT法律顾问小程序
    两个node服务共同修改一个计数文件,互相监控服务是否停止
    基于springboot地方废物回收机构管理系统设计与实现-计算机毕业设计源码+lw文档
    C++ 用户学习 Python 的最佳方法
    Spring Boot如何实现OAuth2授权?
    InfluxDB时序数据库安装和使用
    园子周边第3季—设计初稿预览:2024夏天穿上博客园T恤 show your code
    【LVGL布局】柔性布局
    布隆过滤器
  • 原文地址:https://blog.csdn.net/qq_52153640/article/details/126503030