При использовании RandomAccessFile указатель файла обновляется сам по себе после чтения?

Я пытаюсь прочитать и проанализировать несколько фрагментов информации из файла, которые будут храниться в последовательном порядке. ,char[] размера 8 ,int ,int[] размера 8 и, наконец, int эм>. Итак, я читаю 56 байт информации. Я использую RandomAccessFile, и мне было интересно, нужно ли мне seek() после предварительного формирования каждой операции readChar() и readInt() или я могу просто вызывать эти методы один за другим. Я предполагаю, что это скорее вопрос о том, будет ли указатель файла сбрасываться после завершения каждой операции или если это безопасно, поэтому предположим, что 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();

Будет ли фп 156 после этих операций? Благодарю вас! Извините, если это глупый вопрос.


person Often Confused    schedule 16.04.2014    source источник
comment
Вот для чего нужен указатель файла. Это то место, где вы сейчас находитесь в файле.   -  person user207421    schedule 16.04.2014


Ответы (1)


Да, чтение перемещает указатель файла на количество прочитанных байтов, попробуйте это

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

выход

2
person Evgeniy Dorofeev    schedule 16.04.2014