pro*_*mer 0 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();
}
}
Run Code Online (Sandbox Code Playgroud)
对于在随机访问文件中创建的每一行,我想将它们的位置存储在一个数组中。
然后这些位置将被存储在索引中。
有没有什么方法可以用来返回随机访问文件中一行的位置?
RandomAccessFile 已经提供了你想要的一切。
一方面,您seek()在这里不需要:文件指针会在每次写入操作时越过写入文件的字节。
这意味着,在您写入 line 之后n,对于 的任何值n,.getFilePointer()从RandomAccessFile对象中获取 的结果都会为您提供 line 的起始偏移量n+1。第 1 行从偏移量 0 开始,这几乎是您在这里真正需要考虑的唯一事情。