Себстиано Винья великолепен!

ичение Java для MappedByteBuffer до 2GIG усложняет использование для отображения больших файлов. Обычный рекомендуемый подход - использовать массив MappedByteBuffer и индексировать его через:

long PAGE_SIZE = Integer.MAX_VALUE;
MappedByteBuffer[] buffers;

private int getPage(long offset) {
    return (int) (offset / PAGE_SIZE)
}

private int getIndex(long offset) {
    return (int) (offset % PAGE_SIZE);
}

public byte get(long offset) {
    return buffers[getPage(offset)].get(getIndex(offset));
}

это может работать для отдельных байтов, но требует переписывания большого количества кода, если вы хотите обрабатывать операции чтения / записи, которые больше и требуют пересечения границ (getLong () или get (byte [])).

Вопрос: какова ваша лучшая практика для подобных сценариев, знаете ли вы какое-нибудь рабочее решение / код, который можно использовать повторно, не изобретая колесо?

Ответы на вопрос(1)

Ваш ответ на вопрос