1.FileReader类的概述
-
FileReader是用来访问文件的字符输入流,是InputStreamReader类的子类 -
FileReader用于读取字符串,因此,读取基于字符串的数据是一个不错的选择 -
FileReader通常由更高级的对象(如BufferedReader)包装,这些对象可以提高性能并提供更方便的数据处理方式
2.read(char [] cbuf)方法介绍
-
此方法用于读入数组,相比于read()方法提高了很高的执行效率 -
cbuf 为字符缓冲区 -
它返回读取到的字符数,如果已经到达流的末尾,则返回-1 -
len 为要读取的最大字符数
3.方法示例
package io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class IOTest {
public static void main(String[] args) throws IOException {
/*
对read()操作升级: 使用read()重载方法
*/
FileReader fr1 = null;
try{
//1.File类的实例化
File file1 = new File("hello.txt");
//2.FileReader流的实例化
fr1 = new FileReader(file1);
//3.读入的操作
//read(char[] cbuf): 返回每次读入cbuf数组中的字符的个数.如果到达文件末尾,返回-1
char[] cbuf = new char[5];
int len;
while ((len = fr1.read(cbuf)) != -1){
/*//错误的写法
for (int i = 0; i < cbuf.length; i++) {
System.out.println(cbuf[i]);
}*/
//正确的写法
for (int i = 0; i < len; i++) {
System.out.println(cbuf[i]);
}
}
}catch(IOException e){
e.printStackTrace();
}finally {
if (fr1 !=null){
//4.资源的关闭
fr1.close();
}
}
}
}
注意: ? ?此处在while语句中,不能使用cubf.length
|