使用RandomAccessFile到达文件中的特定行

Vic*_*cky 7 java file random-access

是否可以通过RandomAccessFile将光标定位到文件中特定行的开头?

例如,我想在文件中第111行的char 10到20之间更改String.该文件具有固定长度的记录.

是否可以使用RandomAccessFile将光标直接定位到第111行的开头?

更新:

我使用了以下代码.但是,它返回null.

行长度为200个字符(如果我没有错,则为200个字节)

File f = new File(myFile); 
RandomAccessFile r = new RandomAccessFile(f,"rw"); 
r.skipBytes(200 * 99);   // linesize * (lineNum - 1) 
System.out.println(r.readLine());
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

mis*_*off 4

我不确定,但似乎 RandomAccessFile 不支持此类功能。由于 RAF 使用字节进行操作,我们可以跳过特定数量的字节,如果您的文件具有固定行宽,则可以通过以下方式实现

file.skipBytes(110 * lineSizeInBytes);
Run Code Online (Sandbox Code Playgroud)

否则,你需要这样的东西:

for (int i = 0; i < 110; i++) file.readLine();
String line = file.readLine();
Run Code Online (Sandbox Code Playgroud)