Java FileReader读取两种方式

需求:读取一个文本文件,将读取到的字符打印到控制台。Reader

abstract void

close()
关闭该流并释放与之关联的所有资源。

int

read()
读取单个字符。

int

read(char[] cbuf)
将字符读入数组。

abstract int

read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。

 

FileReader

构造方法

FileReader(File file)
在给定从中读取数据的 File 的情况下创建一个新 FileReader

FileReader(String fileName)
在给定从中读取数据的文件名的情况下创建一个新 FileReader

 

例:FileReaderDemo.java

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo {
   // 需求:读取一个文本文件,将读取到的字符打印到控制台。
   public static void main(String[] args) throws IOException {
      method_2();
   }

   // 方法一:单个字符读取
   public static void method_1() throws FileNotFoundException, IOException {
      // 1,创建读取字符数据的流对象
      /**
       * 在创建流对象时,必须要明确被读取的文件,一定要确定该文件是存在的 用一个读取流关联一个已存在的文件
       */
      FileReader fr = new FileReader("demo.txt");
      // 用Reader中的read读取字符。
      int ch = 0;
      while ((ch = fr.read()) != -1) {
         System.out.print((char) ch);
      }
   }
   // 方法二:使用read(char[])读取文本文件数据
   public static void method_2() throws IOException {
      FileReader fr = new FileReader("demo.txt");
      char buf[] = new char[1024];
      int len = 0;
      while ((len = fr.read(buf)) != -1) {
         System.out.print(new String(buf, 0, len));
      }
   }
}