Java BufferedReader:如何在 Java 中读取文件(附示例)
如何在 Java 中读取文件?
Java 提供了多种从文件读取的机制。最常用的包是 java.io.Reader。这个类在 java.io.BufferedReader 包下包含了 Java BufferedReader 类。
Java 中的 BufferedReader 是什么?
BufferedReader 是一个 Java 类,它通过缓冲字符来读取输入流(如文件)中的文本,从而无缝地读取字符、数组或行。通常,每次从 Reader 发出的读取请求都会使底层的字符或字节流发出相应的读取请求。
因此,建议将 Java 中的 BufferedReader 包装在任何可能进行昂贵读取操作(如 java FileReaders 和 InputStreamReaders)的 Reader 周围。典型的用法如下,将文件路径传递给 Java 中的 BufferedReader:
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() 返回一个字符串。因此,循环将一直迭代直到它不为 null。
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 示例
下面是使用 BufferedReader 类进行 Java 文件读取的示例。
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(); } } }