当前位置: 首页 > 面试题库 >

如何使用Java逐行读取大文本文件?

单于扬
2023-03-14
问题内容

我需要使用Java逐行读取大约5-6 GB的大型文本文件。

我如何快速做到这一点?


问题答案:

常见的模式是使用

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);
}


 类似资料:
  • 问题内容: 我想遍历整个文件的每一行。一种方法是读取整个文件,将其保存到列表中,然后遍历感兴趣的行。此方法占用大量内存,因此我正在寻找替代方法。 到目前为止,我的代码: 执行此代码将显示错误消息:。 有什么建议么? 目的是计算成对的字符串相似度,这意味着对于文件中的每一行,我要计算每隔一行的距离。 问题答案: 正确的,完全Python的读取文件的方法如下: 该with语句处理文件的打开和关闭,包括

  • 我想逐行读取一个文件,但不完全加载到内存中。 我的文件太大,无法在内存中打开,如果尝试这样做,我总是会出现内存错误。 文件大小为1 GB。

  • 问题内容: 我有一些代码可以从pdf文件中读取。有没有一种方法可以在Windows上使用Pypdf,Python 2.6从pdf文件(不是页面)逐行读取? 这是阅读pdf页面的代码: 更新: 呼叫代码是这样的: 问题答案: 看起来您拥有的是要逐行解释的大量文本数据。 您可以使用StringIO类将该内容包装为可搜索的类似文件的对象: 对于您的情况,请执行以下操作:

  • 问题内容: 如何使用fseek逐行读取文件? 代码可能会有所帮助。必须是跨平台和纯PHP。 提前谢谢了 问题答案: 问题是使用fseek进行询问,因此只能假定性能是一个问题,而file()不是解决方案。这是使用fseek的一种简单方法: 我的file.txt 和代码: 输出: 您不必像我一样附加到$ lines数组,如果这是脚本的目的,则可以立即打印输出。如果要限制行数,也很容易引入计数器。

  • 问题内容: 在Java 8中,我看到在Files类中添加了一个名为lines()的新方法,该方法可用于在Java中逐行读取文件。它适用于大文件吗?我的意思是我们可以先加载1000行,然后加载第二组1000行。我有1GB的大文件,能用吗? 有人可以分享代码段的用法吗? 问题答案: 它适用于大文件吗?[…]我有1GB的大文件,能用吗? 据我所知,它也应适用于大文件(但我没有尝试过): 我的意思是我们可

  • 问题内容: 我刚刚开始学习Swift。我有要从文本文件读取的代码,应用程序显示了整个文本文件的内容。如何显示一行一行并多次调用该行? 包含以下内容: 以下是目前的情况。 如果还有另一种方法,请告诉我。将不胜感激。 问题答案: 斯威夫特3.0 该变量应该是数据的每一行。 使用的代码来自: 在用Obj-C编写的iOSSDK中逐行读取文件并使用NSString 查看旧版Swift的编辑历史记录。