1.继承关系图
首先了解一下 BufferedReader 的继承关系图,熟悉他的位置:
BufferedReader 是 Reader 的一个子类。
2.API 介绍
BufferedReader,读取
文本文件
的内容。
它有一个Reader 类型的属性,可以对Reader类型的对象进行扩展。
【此处使用到的就是装饰器模式
】
/**
* BufferedReader 字符处理流 :
* 作用 : 读取文本文件,本质是对节点流的一层包装,使功能使用更方便
* 【构造方法的参数中传入一个 Reader 类型的对象即可】
* 注意 : 在关闭流时,只需要关闭最外层的处理流即可(源码中就是把内层的节点流给关掉了)。
* 主要方法 : readLine():
* 作用 : 读一行的文件
* 返回值 : String lineTex,读取到的一行的文本内容
* null : 当读取结束时返回null,
* [如果最后一行是空行,则会返回null]
* [注意] :返回值中不包含换行符
*/
3.文件读取案例代码
3.1 读取的文件内容
文件路径 :
D:\EDailyRoutine\java-io-test\bufferedReader01.txt
文件内容如下:
大家好
欢迎来到BufferedReaderd读取文件:
下面是这个文件中的内容:
java是全世界最好的语言
java真的是全世界最好的语言
-----------------------------------------
3.2 readLine() 方法
package com.northcastle.reader_;
import java.io.*;
public class ApplicationBufferReader {
public static void main(String[] args) {
//1.创建一个文件对象
String filePath = "D:\\EDailyRoutine\\java-io-test\\bufferedReader01.txt";
File file = new File(filePath);
//2.声明、创建一个节点流对象
FileReader fileReader = null;
//3.声明、创建一个处理流对象
BufferedReader bufferedReader = null;
//4.声明一个变量接收读取到的内容
String contextLine = "";
//6.关闭处理流
try {
fileReader = new FileReader(file); // 实例化节点流 : FileReader
bufferedReader = new BufferedReader(fileReader); // 实例化处理流 : BufferedReader
contextLine = bufferedReader.readLine(); // 首次读取文本文件的内容
//5.循环读取文本中的内容,并在控制台打印
while (contextLine != null){
//lineNum++;
//System.out.println(Arrays.toString(contextLine.getBytes()) ); // 打印读取到的内容
System.out.println(contextLine); // 打印读取到的内容
contextLine = bufferedReader.readLine(); // 继续读取下一行的内容
}
System.out.println("文件读取结束 success!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bufferedReader != null){
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
运行结果:
可以正常读取到文件中的内容
,
【注意】:源文件中 最后有三个空行,但在程序中只有两个空行
原因是:程序读取到最后一行的时候,返回了null(空行),所以没有进行打印
大家好
欢迎来到BufferedReaderd读取文件:
下面是这个文件中的内容:
java是全世界最好的语言
java真的是全世界最好的语言
-----------------------------------------
文件读取结束 success!
4.完成
Congratulations!
You are one step closer to success!