Avatar ·

如何在 Java 中逐行读取大文本文件而不导致内存泄漏?

大家好!我是 Java 新手,在读取大日志文件(约 500 MB)时遇到了问题。我需要单独处理每一行,但当我尝试一次性读取整个文件时,程序会抛出 OutOfMemoryError。 以下是我尝试的方法: ```java import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { File file = new File("bigfile.log"); Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); // 处理行 System.out.println(line); } scanner.close(); } } ``` 但对于大文件,这种方法运行非常慢且占用大量内存。我听说过 BufferedReader,但不知道如何正确使用。请告诉我如何高效地逐行读取文件,而不会一次性将所有内容加载到内存中?最好附上代码示例。 标签:java, 性能