Файлы с произвольным доступом> 2 ГБ с Android SDK - PullRequest
3 голосов
/ 14 октября 2010

Может кто-нибудь сказать мне, как случайный доступ к файлу за 2 ГБ с Android SDK.Я пытался найти позицию> 2147483647 и получил исключение: «Значение слишком велико для определенного типа данных».Это странно, так как параметр для команды поиска имеет тип «long».Подробнее см. Пример кода:

RandomAccessFile    BigFile;
BigFile = new RandomAccessFile(sMyFileName, "r");
BigFile.seek(2147483648);
   --> Exception

Спасибо за любую помощь, Майкл

1 Ответ

3 голосов
/ 15 октября 2010

Это результат всплывающего исключения из нативного / IO (системного) слоя.Это не связано с размером шрифта в языке / самой виртуальной машине.Ошибка на нижнем рычаге - EOVERFLOW («Величина большого для определенного типа данных»). lseek , например, перечисляет эту ошибку.

Гипотеза: базовый системный доступ не 64-битный "осведомлен" :-) Некоторые real JRE такжеэта проблема исторически, IIRC.Не уверен, что история на Android.

Редактировать: Нить в Размер файла FAT32, ограниченный 2 ГБ , похоже, относится к Android 2.x (и содержит подробности/ hints / гипотеза об ограничениях сборки ядра и / или lib IO - консенсус "это не работает").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...