• File类、IO分类、InputStream、OutputStream、Reader、Writer


    File类

    1. 路径分类:绝对路径、相对路径
    2. 绝对路径:从根目录开始的路径,称为绝对路径

      Windows系统中:盘符目录就是根目录,D:、E:

      Linux系统中:/就是根目录,从/开始的路径就是绝对路径

    1. 相对路径:相对于某个路径而言的路径

      相对于不同的路径,同样的相对路径,表达的是不同的路径

      Dos命令行中:相对于当前路径(Dos命令行所在的路径),a/b/c.txt

      Idea中:相对于当前工程的根目录

    输入,输出,都是相对应用程序来说的。数据流向程序,叫做输入流。数据从程序流出叫做输出流。

    IO分类

    分类的方式有两种:按照功能可以分类,按照流向也可以分类

    按照功能分类:

      字节流:可以直接操作字节的流对象

      字符流:可以直接操作字符的流对象

    按照流向分类:

      输入流:其他设备流到内存的流对象

      输出流:内存流到其他设备的流对象

    IO流的体系结构,根据分类,有四种流对象的类型

      字节流:

        字节输入流:InputStream

        字节输出流:OutputStream

       字符流:

        字符输入流:Reader

        字符输出流:Writer

    InputStream

    InputStream是一个抽象类,不能直接创建对象,只能由子类创建对象,最常用子类 FileInputStream,用于和磁盘上的文件进行交互。

    常用方法

    read():从当前的字节输入流中,获取一个字节

    read(byte[] arr):将arr.length个字节,读取到arr中

    read() 方法

    一次读到一个字节。输出这个数据到控制台上发现,显示的是数字而不是字母。为什么?因为显示的是字母对应的码值,如果需要转成字符,可以强转成char类型。

    当read()的值为 -1 时,表示读到文件的末尾。

    read(byte[] arr)

    使用read方法的时候,流需要读一次就处理一次,可以将读到的数据装入到字节数组中,一次性的操作数组,可以提高效率。

    read方法返回的是往数组中存了多少字节。

     close()

    使用完流后,一定要关闭。  close()

    OutputStream

    字节输出流的顶层抽象父类,最常用子类FileOutputStream

    仔细查看a.txt文本文件发现上述程序每运行一次,老的内容就会被覆盖掉。那么如何不覆盖已有信息,能够往a.txt里追加信息呢。查看API文档,发现FileOutputStream类中的构造方法中有一个构造可以实现追加的功能FileOutputStream(File file, boolean append)  第二个参数,append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处。

    Reader

    Reader是抽象类,常用实现类FileReader

    常用方法

    int read() 读取一个字符,-1表示读到文件的末尾。

    int read(char[] cbuf)  将字符读入数组,返回值表示读到了多少个字符。

    close()关闭流

    Writer

      Writer是抽象类,常用实现类FileWriter

    常见的方法

    write(ch): 将一个字符写入到流中。

    write(char[]): 将一个字符数组写入到流中。

    write(String): 将一个字符串写入到流中。

    flush():刷新流,将流中的数据刷新到目的地中,流还存在。

    close():关闭资源:在关闭前会先调用flush(),刷新流中的数据去目的地,然后流关闭。

  • 相关阅读:
    Text文件在MATLAB中读写示例基础
    h2数据库服务器的安装,window和linux
    LeetCode(力扣)37. 解数独Python
    苹果收购DarwinAI,引领设备上AI运行新时代,隐私保护再升级
    设计模式之适配器与装饰器
    linux将miniconda移去其它位置
    前端入职配置新电脑!!!
    99%的时间里使用的14个git命令
    关于web前端大作业的HTML网页设计——我的班级网页HTML+CSS+JavaScript
    Linux指令集合
  • 原文地址:https://blog.csdn.net/weixin_69474097/article/details/126752375