public static void main(String[]args) throws IOException{
RandomAccessFile file=new RandomAccessFile(new File("a.txt"),"rw");
file.writeInt(1);//开始给一个整数,长度:4
for(int i=0;i<40;i++){
file.seek(file.length()-4);//然后4-4=0;那不是在0上面重复了吗?当然结果没有重复!只是我想不通!!!
                        //file.seek(i*4);这样我就很明白,每次长4
file.writeInt(file.readInt());
}
file.close();
}

解决方案 »

  1.   

    你想象下指针所在位子...seek(n)是让指针送当前流向前进n
    0 1 0 1 0 1 0 1...0 1 0 1 0 1 0 1

    seek(0);指针不动
    file.readInt();读4字节,指针向后移动32位
    成为:
    0 1 0 1 0 1 0 1...0 1 0 1 0 1 0 1
                        ↑
    seek(0);指针仍然不动
    file.readInt();继续读4字节,指针向后移动32位所以读出内容是连续的
    如果seek(n);//n!=1
    那么读出的内容就不连续了