ФИЛЕЧАННАЛЬНАЯ КАРТА - не может распространяться на написание

StackOverflow https://stackoverflow.com//questions/22081443

  •  24-12-2019
  •  | 
  •  

Вопрос

Я открываю большой файл (~ 200 МБ) с помощью RandomAccessFile, а затем получить канал для него.Я пытаюсь сопоставить некоторые данные для maphaphyTebuffer, но я получаю исключение:

канал, не открытый для записи - не может расширить файл для требуемого размера.

Я не могу выяснить, почему метод MAP пытается написать на файл - площадь сопоставления меньше, чем размер файла!Почему он пытается расширить файл в этом случае?

<Сильное> Обновление

Решается проблема, оказалось, что я думал, что 3-й параметр указан для положения индекса в файле, что это была длина буфера.

Это было полезно?

Решение

из дока:

Параметры

:

Положение позиция в файле, на котором должна начинаться сопоставленная область;Должен быть неотрицательным

<Сильный> Размер Размер региона, который будет сопоставлен;Должен быть неотрицательным и не больше, чем java.lang.integer.max_value

Какой именно размер файла у вас есть? Вы пытаетесь сопоставить смещение + размер, который превышает размер файла?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top