如何在 Java 中逐行读取一个大型文本文件
本文将讨论在 Java 中逐行高效读取大型文本文件的方法。
在 Java 中读取文本文件的方法有很多。但是,本教程是专门针对读取大型文本文件的,我们将讨论三种最有效的快速读取大型文本文件的方法。
在 Java 中 BufferedReader
逐行读取文件的方法
BufferedReader
Java 中的类从给定的字符输入流中读取文本,缓冲字符以提供字符、数组和行的高效读取。该方法为文件大小相当大的输入文件提供了高效的逐行读取。
下面的例子说明了如何使用 BufferedReader
来读取一个 txt
文件并逐行输出其内容。
import java.io.*;
public class Main {
public static void main(String[] args) {
String file = "my-file.txt";
try(BufferedReader br = new BufferedReader(new FileReader(file)))
{
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
在 Java 中 Stream
逐行读取文件
Java 8 及以上版本的用户还可以使用 Stream
逐行读取大文件。下面的例子说明了如何使用 Stream
来读取一个 txt
文件,并逐行输出其内容。
import java.io.*;
import java.nio.file.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
String file = "my-file.txt";
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
stream.forEach(System.out::println);
}
catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
以上讨论的两种方法会逐行读取输入文件,而不是将整个文件读到内存中。因此,如果我们有一个巨大的文件,不能完全读入内存,这两种方法的效率是很高的。
但是,如果我们的内存足够大,可以完全读取输入文件,我们也可以尝试下面的方法。
Java 中逐行读取文件的 Scanner
方法
Java 中的 Scanner
类是一个简单的文本 Scanner
,它可以使用正则表达式解析原始类型和字符串。Scanner(File source)
将完整的文件读入内存,然后逐行处理。
下面的例子说明了如何使用 Scanner
读取一个 txt
文件并逐行输出其内容。
import java.io.*;
import java.util.*;
public class Main {
public static void main(String [] args) throws IOException {
String fileName = "my-file.txt";
Scanner scan = new Scanner(new File(fileName));
while(scan.hasNextLine()){
String line = scan.nextLine();
System.out.println(line);
}
}
}
我们讨论了三种方法来读取 Java 中的大文本文件并逐行处理它。每种方法都有一些约束和优点,在决定在特定情况下使用哪种方法时,我们必须考虑这些约束和优点。
相关文章
如何在 Java 中创建文件并向其写入数据
发布时间:2023/08/14 浏览次数:65 分类:Java
-
本文讨论了在 Java 中创建文本文件并向其写入数据的方法。Java 有多种创建文件的方法。需要记住的是,try-catch 块几乎是所有创建文件方法所必需的,这样任何 IO 异常都会被优雅地处理。不要
如何在 Java 中将文件转换为字节数组
发布时间:2023/08/14 浏览次数:55 分类:Java
-
本文讨论了在 Java 中把文件转换为字节数组的方法。在 Java 中使用 readAllBytes() 把一个文件转换为字节数组
如何在 Java 中读取文件夹的所有文件
发布时间:2023/08/14 浏览次数:139 分类:Java
-
本文介绍了如何在 Java 中读取一个文件夹的所有文件,并列举了一些示例代码来理解它。有几种方法可以获得一个文件夹的所有文件。在这里我们可以使用 File、Files 和 DirectoryStream 类,还有很
如何在 Java 中获取文件的文件扩展名
发布时间:2023/08/14 浏览次数:85 分类:Java
-
本文介绍了如何在 Java 中获取文件的文件扩展名,还列举了一些示例代码来理解这个话题。使用 Java 中的 getExtension() 方法获取文件扩展名 要获得文件的扩展名,我们可以使用 FilenameUtils 类的
如何在 Java 中获取当前工作目录
发布时间:2023/08/14 浏览次数:88 分类:Java
-
本文介绍了如何获取当前工作目录,并列举了一些示例代码来理解。获取当前工作目录的方法有几种,这里我们用到了 System.getProperty()、toAbsolutePath() 和 FileSystems.getDefault() 等方法。我们来看看
如何在 Java 中检查文件是否存在
发布时间:2023/08/14 浏览次数:80 分类:Java
-
本文将介绍 Java 中检查文件是否存在的几种简单方法。当我们想知道指定的文件是否存在时,我们将使用不同的包和类。
如何在 Java 中读取 XML 文件
发布时间:2023/08/14 浏览次数:155 分类:Java
-
在本文中,我们将学习如何通过使用诸如 DOM Parser,XML Parser,jdom2,dom4j 之类的某些库将 XML 文件解析为 Java 应用程序。XML 代表 Extensible Markup Language,用于在应用程序中传递数据。
在 Java 中重命名文件
发布时间:2023/08/14 浏览次数:94 分类:Java
-
本文介绍了如何在 Java 中重命名文件,并列出了一些示例代码,以便你进一步了解该主题。在 Java 中重命名文件非常容易,因为 Java 在 java.io 包中提供了几个内置方法。
用 Java 读取文本文件
发布时间:2023/08/14 浏览次数:78 分类:Java
-
在本文中,我们将学习如何使用 Java 读取文本文件。在 Java 中使用 Scanner 类读取文件 Scanner 类可以读取 Java 中的文件。首先,创建一个 File 对象来表示所需文件的路径。