17. Java IO: RandomAccessFile

想要查看此教程的目录请点击:Java IO教程目录贴地址


使用RandomAccessFile可以让你在文件中来回移动进行来读写操作,也可以覆盖文件中的某部分内容。这是FileInputStream和FileOutputStream做不到的。

创建RandomAccessFile

使用之前,你必须实例化一个RandomAccessFile对象,下面展示如何撞见一个对象实例:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");

注意构造方法的第二个参数为“rw”。这是打开文件的模式。“rw”代表为只读模式。更多模式请查看java API手册。

利用RandomAccessFile在文件中跳转

在特殊的位置来读写,你必须先将指针移动到指定位置,这个可以用seek()方法。利用getFilePointer()可以得到当前的文件中指针位置。下面是一个简单的例子:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.seek(200);
long pointer = file.getFilePointer();
file.close();

从文件中读取内容

读取内容,可以用RandomAccessFile众多read()方法中的一个,下面是一个例子:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
int aByte = file.read();
file.close();

read()方法每次读取一个字节,在当前文件中指针所指向的位置。

给你一个javaDOC没有提及的东西:read()方法运行时,文件指针增长是在字节刚读取之后。这意味着你可以继续调用方法而不用手动的指定文件指针。

写入到文件

写入到文件,可以调用其众多write()方法的其中一个,下面是一个例子:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.write("Hello World".getBytes());
file.close();

和read()方法一样,在调write()方法之后文件指针会自动像前移动。这样就不用手动去移动文件指针。

close()

在使用完RandomAccessFile之后,你必须调用close()方法。你可以看教程中之前的例子来学如果关闭流。

RandomAccessFile的异常处理

为了让上面的示例看起来更清晰,并没了考虑异常处理。然而,RandomAccessFile必须在使用后将其关闭,就像其他的流或reader/writer一样,流的关闭前后的异常处理,请看第十二章节。

你可能感兴趣的:(17. Java IO: RandomAccessFile)