日期:2014-05-16  浏览次数:20768 次

【转】RandomAccessFile类

转自:http://zhidao.baidu.com/question/322007540.html?fr=qrl&cid=870&index=1&fr2=query

?

http://blog.sina.com.cn/s/blog_3ec48433010001en.html

?

RandomAccessFile类

RandomAccessFile类:是比较不寻常的类,它直接继承于Object,并不属于Streams结构的一部分
  • RandomAccessFile类提供了众多的文件访问方法。
  • RandomAccessFile类支持“随机访问"方式。(随机访问:是可以从文件中任意一点开始读取)
  • RandomAccessFile类在随机(相对顺序而言)读写等长记录格式的文件时有很大的优势。(比如:读取数据库中的某一条记录时)
  • RandomAccessFile类仅限于操作文件,不能访问其他的IO设备,如网络,内存映象等。
  • 两种构造方法:
    ??? new RandomAccessFile(f,"rw"); //读写方式
    ??? new RandomAccessFile(f,"r"); //只读方式

实例:

public class TestIOapp{

public static void main(String [] args) throws IOException{

RandomAccessFile file = new RandomAccessFile("test.txt","rw");

file.writeBoolean(true);

file.writeInt(123456);

file.writeInt(7890);

file.writeLong(1000000);

file.writeInt(777);

file.writeFloat(.0001f);

file.seek(5);

System.out.println(file.readInt());

}
}
A.123456
B.7890
C.1000000
D.777
E.0001

?

解答:

B
Java存储机制
boolean = 1 字节
int = 4字节
...
seek(int pos) pos为相对于文件开始位置的指针偏移。
seek(5),即为指针移动到第5个字节。
readInt(),读取4字节。即一个int