我创建了一个随机访问文件,并在其中写入了一些信息。 我想将随机访问文件中每一行的位置存储在一个数组中。 我将有一个索引,它指向随机访问文件的每一行。 所以我需要在索引中存储随机访问文件的行的位置。
我的程序如下
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/