gpt4 book ai didi

java - 如何在Java中每次从不同的偏移量读取一个大的字符串文件?

转载 作者:行者123 更新时间:2023-12-01 11:36:23 25 4
gpt4 key购买 nike

我有一个由多行组成的大文件,其中每一行实际上是一个英语单词。完整的文件无法装入内存。因此,我想一 block 一 block 地处理它。所以,我需要实现这样的东西:

  1. 方法1:读取一个chunk,调用方法2。
  2. 方法2:对该 block 中的字符串进行一些处理,然后返回步骤1。

我有两个问题。

1.如何实现方法1?我非常清楚如何实现方法2。

我知道如何使用 BufferedReader 逐行读取大文件。例如,

BufferedReader br = new BufferedReader(new FileReader(file)) {
String line;
while ((line = br.readLine()) != null) {
// process the line.
}

但是我想读取更多行而不是一行,并在方法2中处理所有这些。然后,当我回到方法1时,我想再次加载几行...

2. 我的假设是处理一大堆行比处理每一行更有效(性能方面)。这个假设正确吗?

最佳答案

BufferedReader 有效地处理读取 block 中的行。

所以你的选择实际上是:

  • 每次调用 readLine() 后,调用您的方法来处理它
  • 每次调用 readLine() 后,将该行添加到列表中,然后每次列表达到一定大小时,调用您的方法来处理列表,然后将其清除

因此,主要因素是您的“处理”实际执行的操作:一次在多行上运行该进程在逻辑上是否有意义,以及如果将多行传递给处理方法,处理方法是否可以包括一些优化一次?

关于java - 如何在Java中每次从不同的偏移量读取一个大的字符串文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com