java输入输出流05_字符缓冲流

本文详细介绍了Java中的字符缓冲流,包括BufferedWriter和BufferedReader的构造方法、常用方法以及使用示例。BufferedWriter提供newLine()方法,用于根据操作系统写入换行符,而BufferedReader则有readLine()方法用于读取一行文本。通过这两个类,可以提高字符读写的效率。此外,还讲解了LineNumberReader类,它在BufferedReader基础上增加了获取和设置行号的功能。
摘要由CSDN通过智能技术生成

为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度。

字符缓冲流根据流的方向,共有 2 个:

  • 写入数据到流中,字符缓冲输出流BufferedReader

  • 读取流中的数据,字符缓冲输入流 BufferedWriter

1.BufferedWriter类

BufferedWriter类从Writer类继承而来。
在这里插入图片描述

  • 构造方法

缓冲区的默认大小为8192,一般情况下,使用默认的缓冲区大小就足够了,当然我们还可以指定缓冲区的大小。
在这里插入图片描述

  • 常用的方法

字符输出缓冲流(BufferedWriter)不但覆盖了父类的方法,还新增了newLine()方法。
在这里插入图片描述
newLine()方法会根据当前的操作系统,写入一个换行符(不同操作系统换行符不一样,例如:windows操作系统的换行符为“\r\n”,Linux操作系统的换行符为“\n”)。

关于flush()方法使用场景:

假设一个文件有1122个字符,缓冲区大小为100个字符,那么要读取12次,最后一次只有22个字符,但此时缓冲区并没有存满,不能将存储的内容从缓冲区中取出。这时我们需要调用缓冲流自带的一个方法flush(强制写入)将最后一次读取的内容强制写入到文件中去。

  • 向文件中写数据

【示例】使用字符缓冲流向文件中写数据

public class BufferedCharDemo {
   
	public static void main(String[] args) throws IOException {
   
		// 创建基本字符输出流
		Writer w = new FileWriter("demo.txt");
		// 把基本的流进行包装
		BufferedWriter bw = new BufferedWriter(w);
		// 写数据
		for(int i = 0; i < 5; i++) {
   
			bw.write("你好啊");
			// 添加换行符
			bw.newLine();
			bw.flush();
		}
		// 关闭流
		bw.close();
	} 
}

注意:关闭缓冲流时已经实现对字符流的关闭,所以此处我们只需要关闭缓冲流即可。

2.BufferedReader类

BufferedReader类从Reader类继承而来。
在这里插入图片描述

  • 构造方法
    在这里插入图片描述
    缓冲区的默认大小为8192,一般情况下,使用默认的缓冲区大小就足够了,当然我们还可以指定缓冲区的大小。

  • 常用的方法

字符输入缓冲流(BufferedReader)不但覆盖了父类的方法,还新增了readLine()方法。
在这里插入图片描述
String readLine()方法从输入流中读取一行文本,如果已到达流末尾,则返回null。

  • 从文件中读取数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值