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)
我哪里错了?
我不确定,但似乎 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)