Java BufferedReader:如何阅读文件 Java 与例子

如何读取文件 Java?

Java 提供了几种读取文件的机制。为此提供的最有用的包是 java.io.Reader。此类包含类 Java BufferedReader 位于 java.io 包下。Buffer电子书阅读器

什么是 BufferedReader 中 Java?

Buffer电子书阅读器 是一个 Java 类通过缓冲字符从输入流(如文件)读取文本,无缝读取字符、数组或行。通常,对 Reader 发出的每个读取请求都会导致对底层字符或字节流发出相应的读取请求。

因此建议包装 BufferedReader 中 Java 围绕任何 Reader,其 read() 操作可能代价高昂,例如 Java FileReaders 和 InputStreamReaders。典型的用法是将文件路径传递给 BufferedReader 中 Java 如下:

objReader = new BufferedReader(new FileReader("D:\DukesDiary.txt"));
//Assuming you have a text file in D drive

这基本上将您的文件加载到 objReader 中。现在,您需要遍历文件的内容并打印它。

- while循环 下面的代码将读取文件,直到到达文件末尾

while ((strCurrentLine = objReader.readLine()) != null) {
    System.out.println(strCurrentLine);
}

strCurrentLine 读取当前行和 Java readLine 函数 objReader.readLine() 返回一个字符串。因此,循环将不断迭代,直到它不为空。

BufferedReader 示例

下面的代码是一个 Java BufferedReader 示例展示了完整的实现:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample {

 public static void main(String[] args) {
  BufferedReader objReader = null;
  try {
   String strCurrentLine;

   objReader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));

   while ((strCurrentLine = objReader.readLine()) != null) {

    System.out.println(strCurrentLine);
   }

  } catch (IOException e) {

   e.printStackTrace();

  } finally {

   try {
    if (objReader != null)
     objReader.close();
   } catch (IOException ex) {
    ex.printStackTrace();
   }
  }
 }
}

请注意:

上面的代码有一些非常重要的处理,特别是在代码的finally块中。

此代码将确保 内存管理 高效完成,并调用 objReader.close() 方法释放内存。

BufferedReader JDK7 示例

下面是示例 Java 使用以下方式读取文件 BufferedReader 类

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample_jdk7 {

 private static final String FILENAME = "D:\\DukesDiary.txt";

 public static void main(String[] args) {

  try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {

   String strCurrentLine;

   while ((strCurrentLine = br.readLine()) != null) {
    System.out.println(strCurrentLine);
   }

  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}