「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。
前言
大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍BufferedReader字符缓冲流的基本概念和使用。
欢迎关注专栏IO流学习了解更多IO流。
1. 缓冲流
看起来学了字节流、字符流和转换流就万事大吉了呀,为什么还要学习缓冲流呢?
缓冲流的重要作用就是提高读写的效率。
以写文件为例:
如果不使用缓冲流,那就是把要写入的数据一个一个来搬运到磁盘中,而缓冲流通过增加缓冲区来存储数据,缓冲区满了之后才搬运到磁盘,效率明显提升。
并且缓冲流提供了一些更加方便操作文件的方法,比如逐行读取。
简单来说,缓冲流就是加强版的普通流。但是对于缓冲流来说,使用了write方法后一定要使用flush方法或close方法。(一般两个都写,养成好习惯。)
1.1 BufferedReader使用字符缓冲流读取文件
1.1.1 什么是BufferedReader
BufferedReader是Reader的子类,使用字符输入流读取文件,属于加强版的字符输入流。
1.1.2 BufferedReader的构造方法
【构造方法】
BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz)
创建一个使用指定大小输入缓冲区的缓冲字符输入流。
BufferedReader的参数我们经常使用FileReader对象。
【实例展示】
String path = "FileDemo\src\main\java\FileDemo\1.txt";
File file=new File(path);
//默认缓冲区大小为8192
BufferedReader br = new BufferedReader(new FileReader(file));
//指定缓冲区大小
BufferedReader br1 = new BufferedReader(new FileReader(file),1024);
1.1.3 BufferedReader的常用方法
BufferedReader的一个很重要的方法就是readLine方法,可以逐行读取,但是以下常用方法也需要我们了解。
void close()
关闭该流并释放与之关联的所有资源。
int read()
读取单个字符。
int read(char[] cbuf)
将字符读入数组。
int read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
String readLine()
读取一行。
【实例展示】
读取一行
br.readLine();
读取单个字符
br.read();
读取字符数组
char[] c = {'a','b','c'};
br.read(c);
读取字符数组的某一部分
br.read(c,0,1);
关闭流资源
br.close();
小结
以上就是关于缓冲流的基本概念和BufferedReader的基本使用,希望对读者有所帮住,如有不正之处,欢迎留言指正。