如何使用Java逐行读取大型文本文件? 从String中删除HTML标记 StringBuilder和StringBuffer之间的区别 如何使用Java逐行读取大型文本文件? 一种常见的模式是使用 try { BufferedReader br = new BufferedReader(new FileReader(file)) String line; while ((line = br.readLine()) != null) { // process the line. } } 如果假设没有字符编码,则可以更快地读取数据。例如ASCII-7,但它没有太大的区别。您对数据的处理很可能需要更长的时间。 一种不太常见的模式,可以避免line泄漏的范围。 try(BufferedReader br = new BufferedReader(new FileReader(file))) { for(String line; (line = br.readLine()) != null; ) { // process the line. } // line is not visible here. } 在Java 8中你可以做到 try { Stream<String> stream = Files.lines(Paths.get(fileName)) stream.forEach(System.out::println); } 注意:您必须将Stream放在try-with-resource块中以确保在其上调用#close方法,否则在GC稍后执行它之前,基础文件句柄永远不会关闭。 从String中删除HTML标记 StringBuilder和StringBuffer之间的区别