代码不贴了,很简单。使用这个类RandomAccessFile,向文件写入两个整数100和200,写入没有问题。读取也没有问题。只有一点不解,使用raf.seek(0)或者是raf.seek(4),可以读出100以及200。但是raf.seek(1)、raf.seek(2)、raf.seek(3)就读取出很多的数字。比如设置raf.seek(1)后,在读取出来的值就是:25600。使用skipBytes也是一样。这是为什么?麻烦详细点,不要复制JDK API。我都看过才来问的。顺便解释一下seek与skipByte他们之间的却别!
2)skipByte 是在当前位置的基础上再跳过指定字节数;
3) 你的文件应该像这样的(用16进制编辑器):
00 00 00 64 00 00 00 C800 00 00 64=100 ; 00 00 00 C8=200; 高位在前
seek(1) 读到的就是 00 00 64 00 = 25600
raf.seek(4)读第二个数(整数写入时是4个字节,往后走4字节所以能读到正确的)
假如是raf.seek(1)或其他,如楼上解释