• JAVA - File类、字节流、字符流、特殊操作流


    1.File类的构造方法

    在这里插入图片描述

    File类的创建文件功能

    在这里插入图片描述

    File类的判断和获取功能

    在这里插入图片描述

    File类的删除功能

    在这里插入图片描述

    2.IO流 - 字节流、字符流

    字节流

    1. 处理字节数据:字节流以字节为单位处理数据,适用于处理二进制文件(如图像、音频、视频文件)或以字节为基本单位的文本文件。

    2. 底层 I/O 操作:字节流通常用于执行底层I/O操作,因为它们可以直接读取和写入文件的字节数据。

    3. InputStream 和 OutputStream:在Java中,字节流有两个主要的抽象类:InputStream 用于读取字节数据,OutputStream 用于写入字节数据。

    4. 不适合字符数据:虽然可以用字节流来处理字符数据,但它们不够方便,因为它们不会处理字符编码,可能会导致字符数据在不同编码下的错误解释。

    字符流

    1. 处理字符数据:字符流以字符为单位处理数据,适用于处理文本文件,如.txt文件。

    2. 字符编码:字符流在读取和写入数据时会考虑字符编码,以确保正确地处理不同编码的文本数据。

    3. Reader 和 Writer:在Java中,字符流有两个主要的抽象类:Reader 用于读取字符数据,Writer 用于写入字符数据。

    4. 适合文本处理:字符流更适合于文本文件的读取和写入,因为它们能够处理字符编码、字符集等字符相关的问题。

    • 如果您需要处理文本文件,特别是需要考虑字符编码和字符集的情况下,建议使用字符流(Reader和Writer)。
    • 如果您需要处理二进制文件或以字节为单位的数据,使用字节流(InputStream和OutputStream)更合适。
    • 在实际应用中,通常会根据需要选择合适的流类型,以确保数据的正确处理和高效性能。

    JAVA字节流

    InputStream// :这个抽象类是字节输`入`流的所有类的超类
    OutputStream// :这个抽象类是字节输`出`流的所有类的超类
    // 子类名特点:子类名称都是以其父亲名作为子类名的后缀
    
    FileOutputStream// :文件输出流用于将数据写入File
    
    • 1
    • 2
    • 3
    • 4
    • 5

    字节流写入的三种方式:

    在这里插入图片描述

    字节缓冲流

    在这里插入图片描述

    字符流

    • 汉字在存储的时候,无论哪种编码存储,第一个字节都是负数,所以才有了字符流专门解析文本
    • 字符流 = 字节流 + 编码表

    编码和解码

    编码:byte[] getBytes()
    解码:String(byte[] bytes)

    字符流抽象基类

    • Reader:字符输入流的抽象类
    • Writer:字符输出流的抽象类
    • 字符流中和编码解码问题相关的两个类:InputStreamReader; OutputStreamWriter;

    字符流写数据的五种方式

    在这里插入图片描述

    字符流读数据的两种方式

    在这里插入图片描述

    字符缓冲流

    • BufferedWriter:将文本写入字符输出流,缓冲字符,提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小。默认值足够大,可用于大多数情况
    • BufferedReader:以读取文本在字符输入流,缓冲字符,提供字符,数组和行的高效读取,可以指定缓冲区大小。默认值足够大,可用于大多数情况

    字符缓冲流的特有功能
    在这里插入图片描述

    IO流小结

    在这里插入图片描述

    Properties

    在这里插入图片描述

    3.特殊操作流-标准输入输出流

    在这里插入图片描述
    键盘录入类: new Scanner(System.in)

    • 标准输出流
      在这里插入图片描述

    字节打印流

    • 字节打印流:PrintStream
    • 字符打印流:PrintWriter

    字符打印流

    • 字符打印流PrintWriter
      在这里插入图片描述

    对象序列化

    在这里插入图片描述

    对象序列化流

    在这里插入图片描述

    serialVersionUID&transient

    在这里插入图片描述

    对象反序列化流

    在这里插入图片描述

  • 相关阅读:
    K8S原来如此简单(五)Metrics Server与HPA
    【业务功能篇103】微服务下全局唯一分布式id生成器
    CCS9.1导入F28069M例子工程 遇到的一些问题
    卷积神经网络matlab工具包,matlab怎么搭建神经网络
    内存池的实现3 固定大小的allocator单线程内存配置器
    notepad++配合正则表达式分组模式处理文本转化为sql语句
    P31 JList列表框
    vue大型电商项目尚品汇(前台篇)day05
    Node.js--》简易资金管理系统后台项目实战(后端)
    【JAVA】 图书管理系统(javaSE简易版 内含画图分析) | 期末大作业&课程设计
  • 原文地址:https://blog.csdn.net/JankoY/article/details/132875389