(1)基本概念

java.io.FileReader类主要用于从文本文件读取文本数据内容。

(2)常用的方法

**方法声明 ** **功能介绍**
**
构造方法
FileReader(String``fifileName)
根据参数指定的文件名构造对象

读取方法
int read()
读取单个字符的数据并返回,返回``-1``表示读取到末尾

int read(char[] cbuf, int``offffset, int length)
从输入流中将最多``len``个字符的数据读入一个字符数组中,返回读取

到的字符个数,返回``-1``表示读取到末尾
int read(char[] cbuf)

从此输入流中将最多`` cbuf.length ``个字符的数据读入字符数组中,返
回读取到的字符个数,返回``-1``表示读取到末尾

void close()
关闭流对象并释放有关的资源


(3)执行代码<br />

package com.lagou.task17;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest {
public static void main(String[] args) {
FileReader fr = null;
try {
// 1.构造FileReader类型的对象与d:/a.txt文件关联
//fr = new FileReader("d:/a.txt");
fr = new FileReader("d:/b.txt");
// 2.读取数据内容并打印
/*
int res = fr.read();
System.out.println("读取到的单个字符是:" + (char)res); // 'a'
*/
int res = 0;
while ((res = fr.read()) != -1) {
System.out.println("读取到的单个字符是:" + (char)res + ",对应的编号是:" + res);
}
// 准备一个字符数组来保存读取到的数据内容
// char[] cArr = new char[5];
// 期望读满字符数组中的一部分空间,也就是读取3个字符放入数组cArr中下标从1开始的位置上
/*int res = fr.read(cArr, 1, 3);
System.out.println("实际读取到的字符个数是:" + res); // 3
for (char cv : cArr) {
System.out.println("读取到的单个字符是:" + (char)cv); // 啥也没有 a e l 啥也没有
}*/
// 期望读满整个字符数组
/*int res = fr.read(cArr);
System.out.println("实际读取到的字符个数是:" + res); // 5
for (char cv : cArr) {
System.out.println("读取到的单个字符是:" + (char)cv); // a e l l h
}*/
} catch (IOException e) {
e.printStackTrace();
} finally {
// 3.关闭流对象并释放有关的资源
if (null != fr) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}