FileReader文件字符输入流
* 继承结构
Java.lang.Object
- java.io.Reader; 抽象类
java.io.InputStreamReader; <转换流: 字节输入流转换为字符输入流>
java.io.FileReader; <文件字符输入流>
* 文件字节输入、输出流的read和write方法使用字节数组读写数组读写数据,即以字节为单位处理数据,字节流不能够很好操作Unicode字符,比如一个汉字在文件中占2个字节,试过使用字节流,读取不当会出现乱码的现象,
字符输入流和输出流的read和write方法使用字符数组读写即以字符为单位来处理数据。
* 代码:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest01 {
public static void main(String[] args) {
//创建路径
String fileName="D:\\TestFile\\JavaTestFile\\FileOutputStreamTest01.txt";
//创建字符输入流对象
FileReader fr=null;
try {
//创建字符输入流
fr=new FileReader(fileName);
/* 方式一:开始读取文件 直接用read()
int temp=0;
while((temp=fr.read())!=-1){
System.out.println(temp);
}*/
// 方式二: 开始读取文件 用read(char[])
//创建char数组
char[] chars=new char[512] ; // 1kb
int temp=0;
while((temp=fr.read(chars))!=-1){
System.out.println(new String(chars,0,temp));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}