构造方法 说明
public FileReader(File file) 创建字符输入流关联本地文件
public FileReader(String pathname) 创建字符输入流关联本地文件
FileReader fr = new FileReader("myio\\a.txt");
int ch;
while ((ch = fr.read()) != -1) {
    System.out.print(char(ch));
fr.close();

有参read方法细节

  • 读取数据,解码,强转三步合并,把强转之后的字符放到数组当中
  • 空参的read方法 + 强制类型转换
  • FileReader fr = new FileReader("myio\\a.txt");
    char[] chars = new char[2];
    int len;
    while ((len = fr.read(chars)) != -1) {
        System.out.print(new String(chars, 0, len));
    fr.close();
    

    创建字符输入流对象

  • 关联文件,并创建缓冲区(长度为8192的字节数组)
  • 好处:减少了频繁到硬盘中读取数据的过程,提高效率
  • 字节流没有缓冲区
  • 判断缓冲区中是否有数据可以读取
  • 缓冲区没有数据
  • 就从文件中获取数据,转到缓冲区中,每次尽可能装满缓冲区
  • 如果文件中也没有数据了,返回-1
  • 缓冲区有数据
  • 就从缓冲区中读取
  • 空参的read方法:一次读取一个字节,遇到中文一次读多个字节,把字节解码并转成十进制返回
  • 有参的read方法:把读取字节,解码,强转三步合并了,强转之后的字符放到数组中
  •