a) 实现类InputStreamReader的方法
构造方法:
i. InputStreamReader(InputStream is) 用默认编码方式读取数据
ii. InputStreamReader(InputStream is,String charsetName) 用指定编码读取数据
成员方法:
iii. int read() 一次读取一个字符
iv. int read(char []c) 一次读取一个字符数组
b) 常用InputStreamReader的子类FileReader
构造方法:
i. FileReader(File file)
ii. FileReader(String filename)
成员方法和InputStreamReader方法一样
实例在下面给出
c) 字符缓冲流BufferedReader
i. 构造方法
BufferedReader (Reader in)in为Reader对象
ii. 成员方法和FileReader类相同
特殊方法
public String readLIne() 一次读取一行数据,只读取该行内容的字符串,不包含行终止符,
如果到达末尾返回null
iii. 用字符缓冲流配合字符数组读写数据效率最高
d) LineNumberReader类(BufferedReader的子类)
i. 构造方法格式和BufferedReader格式相同
ii. 成员方法:
1. public int getLineNumber()获得当前行号
可以按照行号+数据的格式写入文件中
2. public void setLineNumber(int LineNumber)
设置第一行的行号,后面的行号都是以此行号开始
两种读文件实例
package Test4_FileReader;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
/*
* 两种方式读文件
* int read() 一次读取一个字符
* int read(char []c) 一次读取一个字符数组,返回值为本次读入字符数组的长度
*/
public class Demo {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("Demo2.txt"));
int i=0;
//方法一
// while((i=br.read())!=-1) {
// //注意此处不可以换行,因为默认将换行符读入了,
// System.out.print((char)i);
// }
//方法二
char []c=new char[1024];
while((i=br.read(c))!=-1) {
//每次只需要将本次读入的字符数组打印出来,i为本次读入字符数组的长度
System.out.print(new String(c,0,i));
}
br.close();
}
}