[Java 基础学习]字节流与字符流

[java 基础学习] 字节流与字符流

参考黑马课程

顶级父类:

字节流:InputStream、OutputStream
字符流:Reader、Writer

字节流

  • OutputStream:抽象类,表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。

    基本方法
    public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
    public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
    public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流。
    public void write(byte[] b, int off, int len) :将指定 byte 数组中从偏移量 off 开始的len个字节写入此输出流
    public abstract void write(int b) :将指定的字节写入此输出流

  • FileOutputStream类:文件输出流,用于将数据写出到文件。

    构造方法:
    public FileOutputStream(File file) :创建文件输出流以写入由指定的File对象表示的文件。
    public FileOutputStream(String name) :创建文件输出流以指定的名称写入文件。
    注:在创建流对象时,传入一个路径。如果路径下没有这个文件,会创建该文件,如果有,会清空此文件中的数据。

    基本方法
    void write(int b) 将指定字节写入此文件输出流
    void write(byte[] b) 将 b.length 个字节从指定byte数组写入此文件输出流中。
    void write(byte[] b, int off, int len) 将指定byte数组中从偏移量 off 开始的 len 个字节写入此文件输出流。

    将数据添加到文件最后
    public FileOutputStream(File file, boolean append) : 创建文件输出流以写入由指定的 File对象表示的文件。
    public FileOutputStream(String name, boolean append) : 创建文件输出流以指定的名称写入文件。
    注:append为true时,追加数据,false:清空原有数据。

    写入数据时换行:需在数据中添加换行符
    windows系统:\r\n
    unix系统:\n
    Mac系统:\r

  • InputStream:抽象类,类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。

    基本方法:
    public void close() :关闭此输入流并释放与此流相关联的任何系统资源。
    public abstract int read() : 从输入流读取数据的下一个字节。
    public int read(byte[] b) : 从输入流中读取一些字节数,并将它们存储到字节数组b中。

  • FileInputStream:文件输入流。用于从文件中读取字节。

    构造方法:
    FileInputStream(File file) : 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的 File对象file命名。
    FileInputStream(String name) : 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名name命名
    注:创建该流对象时,必须传入一个文件路径,若在该路径下没有此文件,会抛出FileNotFoundException。

    基本方法:
    int read() 从此输入流中读取一个数据字节。 读到文件末尾时,返回-1.
    int read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 返回的是从文件中读取的有效字节数,读到文件末尾返回-1.

字符流

只能操作文本文件,不能操作图片、视频等非文本文件。

  • Reader:抽象类,是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入 流的基本共性功能方法。

    基本方法
    public void close() :关闭此流并释放与此流相关联的任何系统资源。
    public int read() :从输入流读取一个字符。
    public int read(char[] cbuf) :从输入流中读取一些字符,并将它们存储到字符数组cbuf中

  • FileReader:是读取字符文件的便利类。创建对象时使用系统默认的字符编码和默认字节缓冲区。

    构造方法:
    FileReader(File file) : 创建一个新的 FileReader,给定要读取的File对象。
    FileReader(String fileName) : 创建一个新的 FileReader,给定要读取的文件的名称

    常用方法:
    public int read():读取单个字符。读取值文件末尾时返回-1。
    public int read(char[] cbuf):将字符读入数组。返回读取到的有效字符个数。

  • Writer:抽象类,是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。

    基本方法:
    void write(int c): 写入单个字符。
    void write(char[] cbuf): 写入字符数组。
    abstract void write(char[] cbuf, int off, int len): 写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
    void write(String str): 写入字符串。
    void write(String str, int off, int len): 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
    void flush(): 刷新该流的缓冲。
    void close(): 关闭此流,但要先刷新它

  • FileWriter:写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。

    构造方法:
    FileWriter(File file) : 创建一个新的 FileWriter,给定要读取的File对象。
    FileWriter(String fileName) : 创建一个新的 FileWriter,给定要读取的文件的名称。

    常用方法:
    public void write(int c):写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。
    public void write(char[] cbuf):写入字符数组。
    public abstract void write(char[] cbuf, int off, int len):写入字符数组的某一部分。
    public void write(String str):写入字符串。
    public void write(String str, int off, int len):写入字符串的某一部分。

    数据续写与换行:类似FileOutputStream。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值