java - 如何返回 Java 中随机访问文件中一行的位置?

标签 java position random-access

我创建了一个随机访问文件,并在其中写入了一些信息。 我想将随机访问文件中每一行的位置存储在一个数组中。 我将有一个索引,它指向随机访问文件的每一行。 所以我需要在索引中存储随机访问文件的行的位置。

我的程序如下

package randomaccessfile;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class raf {

   public static void main(String[] args) throws FileNotFoundException, IOException {
      File file = new File("DocumentsFile.txt");
      RandomAccessFile raf = new RandomAccessFile(file, "rw");
      for (int i = 0; i <= 10 ; i++) {
         String sentence = "1 Info Name Surname"; //i create sentences in the random access file
         raf.seek(file.length());
         raf.writeBytes(sentence);
         raf.writeBytes("\r\n");
      }
      raf.close();
   }
}

对于随机访问文件中创建的每一行, 我想将它们的位置存储在一个数组中。

然后位置将存储在索引中。

有什么方法可以用来返回一行的位置 在随机访问文件中?

最佳答案

RandomAccessFile 已经提供了您想要的一切。

首先,这里不需要 seek():文件指针前进到每次写入操作时写入文件的字节。

这意味着,在编写了 n 行后,无论 n 的值如何,都会从以下位置获取 .getFilePointer() 的结果: RandomAccessFile 对象将为您提供第 n+1 行的起始偏移量。第 1 行从偏移量 0 开始,这几乎是您在这里唯一需要真正考虑的事情。

关于java - 如何返回 Java 中随机访问文件中一行的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620996/

相关文章:

java - 观察者模式混淆

html - 为什么不显示固定 div 的 4px 边距?

python - pop、__delitem__、__delslice__、__setslice__、insert 等的列表实现

java - 从最后一行读取文件

java - 计算数组中的元素数

java - 如果 Google Cloud Pub/Sub 在 30 秒内未收到响应,则会重试消息传送。故意的?

java - 使用 Lucene 作为存储

css - 在页脚中制作 4 个 div 不会自动调整大小并居中

vba - 位置图表相对于 VBA 中的另一个图表(上方或下方)

java - 输出打印第一个字符串和第二个字符串的一部分。字符串大小设置不正确