читать до определенного индекса в файле с java RandomAccessFile

Вот более продвинутый пример для , показывающий все файлы в папке

2
задан Sophia Marie 17 January 2019 в 16:31
поделиться

1 ответ

Вот как я решил свою проблему:

try {
    int index = 100;
    raf.seek(index); //index = 100
    int counter = 0;
    int length = 400;
    while (counter < length) { //want to read the characters 400 times
       char c = (char) raf.read();
       if (!(c == '\n')) {   //don't append the newline character to my result
           sb.append(c);    //sb is a StringBuilder
           counter++;
       }
    }
} catch (IOException e) {
    e.printStackTrace();
}

Я увидел и другое решение, где readFully () использовался с байтовым массивом, который также хорошо работал.

try {
    raf.seek(index);
    byte[] bytes = raf.readFully(new byte[(int) length]); //length of the charactersequence to be read
    String str = bytes.toString();
} catch (IOException e){
    e.printStackTrace();
}

В этом решении длина байтового массива должна учитываться в символе новой строки, поэтому вы должны рассчитать это с учетом длины строки. -> Начать в файле с разрывов строк и завершить индекс в файле с разрывами строк. длина = endInFile-startInFile +1;

0
ответ дан Sophia Marie 17 January 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: