字符流Reader/Writer

一、Reader相关介绍及其子类

Reader是所有字符输入流的超类。它提供了读取字符流的基本方法,如read(), read(char[] cbuf, int off, int len)等;由于Reader是抽象类,通常使用它的子类如FileReader, BufferedReader等来创建字符输入流对象。

Reader常用方法:

  • int read(): 读取单个字符。如果已到达流的末尾,则返回-1。

  • int read(char[] cbuf): 读取字符到指定的字符数组。返回读取的字符数,如果已到达流的末尾,则返回-1。

  • int read(char[] cbuf, int off, int len): 读取字符到指定字符数组。返回读取的字符数,如果已到达流的末尾返回-1。

  • void close(): 关闭流并释放与之相关联的系统资源。

常见子类:FileReader 用来读取字符文件的实现类。

public FileReader(String fileName) throws FileNotFoundException {
    super(new FileInputStream(fileName));
}

public FileReader(File file) throws FileNotFoundException {
    super(new FileInputStream(file));
}

二、Writer相关介绍及其子类

Writer是所有字符输出流的超类。它提供了写入字符流的基本方法,如write(int c)write(char[] cbuf)等;Writer是抽象类,通常使用它的子类如FileWriterBufferedWriter等来创建字符输出流对象。

Writer常用方法:

  • void write(int c): 写入单个字符。

  • void write(char[] cbuf): 写入字符数组。

  • void write(String str): 写入字符串。

  • void write(String str, int off, int len): 写入字符串的某一部分,off是字符串开始索引,len是要写入的字符个数。

  • void flush(): 刷新该流的缓冲。

  • void close(): 关闭此流,但要先刷新它。

常见子类:FileWriter 用来写出字符文件的实现类。

//如果文件不存在,这会自动创建。如果文件存在,则会覆盖
public FileWriter(String fileName) throws IOException

//如果文件不存在,这会自动创建。如果文件存在,则会覆盖
public FileWriter(File file) throws IOException

//加入true参数,会实现对文件的续写,使用false则会实现对文件的覆盖
public FileWriter(String fileName, boolean append) throws IOException 

//加入true参数,会实现对文件的续写,使用false则会实现对文件的覆盖
public FileWriter(File file, boolean append) throws IOException 

三、Buffer字符输入和输出流相关介绍

BufferedReader和BufferedWriter是用于处理字符流的两个重要类,它们分别用于从字符输入流中读取数据和向字符输出流中写入数据,这两个类都提供了缓冲功能,使得读写操作更加高效。

(1)、BufferedReader

  • 用于从字符输入流中读取文本,并缓冲字符以便有效地读取。
  • 当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并放满缓冲区。
  • 而之后若使用read()方法,会先从缓冲区中进行读取,如果缓冲区数据不足,才会再从文件中读取。
  • 构造函数 BufferedReader(Reader in)。

常用方法

  • int read(): 读取单个字符。

  • int read(char[] cbuf, int off, int len): 将字符读入数组的某一部分。

  • String readLine(): 读取一整行文本行,返回一整行字符串,如果读到行尾了就返回null, 返回的一行字符中不包含换行符

  • void close(): 关闭流并释放与之相关联的系统资源。

(2)、BufferedWriter

  • 用于将文本写入字符输出流,缓冲字符以便有效地写入。

  • 写入的数据并不会先输出到目的地,而是先存储至缓冲区中,如果缓冲区中的数据满了,才会一次对目的地进行写出

  • 构造函数 BufferedWriter(Writer out)

常用方法

  • void write(int c): 写入单个字符。

  • void write(char[] cbuf, int off, int len): 写入字符数组的一部分。

  • void write(String s, int off, int len): 写入字符串的一部分。

  • void newLine(): 写如一个换行符号。

  • void close(): 关闭流并释放与之相关联的系统资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值