使用RandomAccessFile时,读取后文件指针是否自行更新?

时间:2014-04-16 01:50:37

标签: java randomaccessfile

我正在尝试从按顺序存储的文件中读取和解析一些信息。 ,一个大小为8的char [] 一个int 一个大小为8的int [] ,最后,一个int 。 所以,我正在阅读56个字节的信息。我正在使用RandomAccessFile并且想知道在执行readChar()和readInt()的每个操作之后是否需要seek(),或者我是否可以一个接一个地调用这些方法。我想这是一个关于文件指针在每次操作完成后是否会重置或者是否安全的问题,所以假设fp将跟随它的最后位置,直到文件关闭。

这是我写的:

        int currentOffset = 128;
        for(int i = 0; i<16; i++){
            //Initialize nodes. 
            readDisk.seek(currentOffset);
            char[] name = new char[8];
            for(int j = 0; j<8; j++){
                name[i] = readDisk.readChar();
            }
            int size = readDisk.readInt();
            int[] blockPointers = new int[8];
            for(int j = 0; j<8; j++){
                blockPointers[i] = readDisk.readInt();
            }
            int used = readDisk.readInt();

这些操作后fp是否会达到156?谢谢!对不起,如果这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:2)

是的,读取按读取的字节数移动文件指针,试试这个

    RandomAccessFile f = new RandomAccessFile("1.txt", "r");
    f.readChar();
    System.out.println(f.getFilePointer());

输出

2