1.继承关系图
首先了解一下 FileReader 的继承关系图,熟悉他的位置:
FileReader 是 InputStreamReader 的一个子类。
InputStreamReader 是 Reader 的一个子类。
2.API 介绍
字符输入流,作用就是以
字符
的为单位读取文件内容到程序中
。
特别适合处理文本文件
。
/**
* 1.read() 方法
* 作 用 : 按字符读取文件内容,每次读取一个字符
* 参 数 : 无参数
* 返回值 : 1.返回读取到的字符;2.如果读取完毕,返回-1
*/
/**
* 2.read(char[] c) 方法
* 作 用 : 按字符读取文件内容,每次可以读取 char[] 长度个字符
* 参 数 : 字符数组,每次读取的内容放到这个数组中暂存
* 返回值 : 1.返回读取到的字符数组的实际长度;2.如果是-1,则读取完毕
*/
3.文件读取案例案例代码
3.1 读取的文件内容
文件路径 :
D:\EDailyRoutine\java-io-test\reader01.txt
文件内容如下:
hello FileReader
你好 FileReader
==========
欢迎使用FileReader来读取此文件
3.2 read() 方法
package com.northcastle.reader_;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* author : northcastle
* createTime:2021/12/13
* 使用 FileReader 读取文件内容
*/
public class ApplicationFileReader {
public static void main(String[] args) {
//1.创建文件
String filePath = "D:\\EDailyRoutine\\java-io-test\\reader01.txt";
File file = new File(filePath);
//2.声明字符输入流 FileReader
FileReader fileReader = null;
//3.创建读取的结果的接收值
int readChar = 0;
try {
// 4.创建字符流,执行读取操作
fileReader = new FileReader(file);
readChar = fileReader.read();//读取首个字符
while (readChar != -1){ // 循环读取
System.out.print((char) readChar); // 输出这个字符即可
readChar = fileReader.read(); // 继续读下一个字符
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fileReader != null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
运行结果:
可以正常读取到文件中的内容
,
hello FileReader
你好 FileReader
==========
欢迎使用FileReader来读取此文件
3.3 read(char[]) 方法
package com.northcastle.reader_;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* author : northcastle
* createTime:2021/12/13
* 使用 FileReader 读取文件内容
*/
public class ApplicationFileReader {
public static void main(String[] args) {
//1.创建文件
String filePath = "D:\\EDailyRoutine\\java-io-test\\reader01.txt";
File file = new File(filePath);
//2.创建字符输入流 FileReader
FileReader fileReader = null;
//3.创建读取暂存数组
char[] buff = new char[8];
int len = 0;
try {
//4.执行读取操作
fileReader = new FileReader(file);
len = fileReader.read(buff); //首次读取
while (len != -1){ // 根据读取的状态,循环读取
System.out.print(new String(buff,0,len));
len = fileReader.read(buff);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fileReader != null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
运行结果:
正常读取文件中的内容
hello FileReader
你好 FileReader
==========
欢迎使用FileReader来读取此文件
4.完成
Congratulations!
You are one step closer to success!