2013-10-15 8 views
0

Я использую MappedByteBuffer в Scala (хотя этот вопрос также относится к Java), чтобы открыть файл размером примерно 400 МБ. Вот фрагмент кода:MappedByteBuffer Scala/Java

val file = new java.io.File(...) 
val stream = new java.io.FileInputStream(file) 
val buffer = stream.getChannel.map(java.nio.channels.FileChannel.MapMode.READ_ONLY, 0, file.length) 

Однако это не удается, со следующей ошибкой:

Из того, что я читал, вы должны быть в состоянии отобразить файл до 2 Гб. Что касается моих настроек JVM, у меня установлен -Xmx4G, поэтому я не понимаю, почему он не может открыть файл. В результате теста я отобразил меньшую часть файла (~ 1mb), которая работала корректно.

У кого-нибудь есть идеи?

ответ

0

Я неправильно понял пример, который я видел в Интернете, считая, что третьим аргументом для карты является байт файла, чтобы остановить чтение, тогда как на самом деле это количество прочитанных байтов. Изменение этого решает проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^