随机访问文件> 2GB Android SDK

时间:2010-10-14 18:37:21

标签: android file-io

任何人都可以告诉我如何使用android SDK随机访问超过2GB的文件。 我试图寻找一个位置> 2147483647并获得异常:“对于已定义的数据类型,值太大”。这是奇怪的,因为seek命令的参数是“long”类型。有关详细信息,请参阅代码示例:

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

感谢您的帮助, 迈克尔

1 个答案:

答案 0 :(得分:3)

这是从本机/ IO(系统)层冒泡的结果。它与语言/ VM本身的类型大小无关。下控制杆的错误是EOVERFLOW(“定义数据类型的值为大”)。例如,lseek列出了此错误。

假设:底层系统访问不是64位“意识到”:-)一些真正的 JRE历史上也存在这个问题,IIRC。不知道android上的故事是什么。

编辑: FAT32 file size limited to 2GB处的帖子似乎与Android 2.x有关(并包含有关内核构建和/或IO lib限制的详细信息/提示/假设 - 共识是“它不起作用”)。