您可以使用 RandomAccessFile 类。
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
注意构造函数的第二个输入参数:“rw”。这是您要打开文件的模式。“rw”表示读/写模式。查看 JavaDoc 以了解有关可以在哪些模式下打开 RandomAccessFile 的更多详细信息。
在 RandomAccessFile 中移动
要在 RandomAccessFile 中的特定位置读取或写入,您必须首先将文件指针定位在要读取或写入的位置。这是使用 seek() 方法完成的。调用getFilePointer()方法可以获得文件指针的当前位置。
这是一个简单的例子:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.seek(200);
long pointer = file.getFilePointer();
file.close();
从 RandomAccessFile 读取
从 RandomAccessFile 读取是使用它的许多 read() 方法之一完成的。这是一个简单的例子:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
int aByte = file.read();
file.close();
read() 方法读取位于 RandomAccessFile 实例中的文件指针当前指向的文件中的位置的字节。
JavaDoc 忘记提及的一件事是:read() 方法增加文件指针以指向文件中刚刚读取的字节之后的下一个字节!这意味着您可以继续调用 read() 而无需手动移动文件指针。
写入 RandomAccessFile
可以使用多个 write() 方法之一来写入 RandomAccessFile。这是一个简单的例子:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.write("Hello World".getBytes());
file.close();
就像 read() 方法一样,write() 方法在被调用后会推进文件指针。这样您就不必不断移动文件指针来将数据写入文件中的新位置。
关闭()
RandomAccessFile 有一个 close() 方法,当您使用完 RandomAccessFile 实例后必须调用该方法。您可以在上面的示例中看到调用 close() 的示例。