在我的 Android 项目中,我有一个 2M 字节的原始数据文件。由于我的应用程序是一个长寿命的应用程序,我不希望它总是占用 2M 内存。数据文件已经格式化,一旦我需要从数据文件中获取一些数据,我只需要寻找某个位置并读取几个字节。
Resource 类只能在原始文件上返回 InputStream,但 InputStream 不能进行随机读取。
Android上有没有办法从原始数据文件中随机读取一些字节?或者当我只需要几个字节时,我必须将整个文件读入内存。
在我的 Android 项目中,我有一个 2M 字节的原始数据文件。由于我的应用程序是一个长寿命的应用程序,我不希望它总是占用 2M 内存。数据文件已经格式化,一旦我需要从数据文件中获取一些数据,我只需要寻找某个位置并读取几个字节。
Resource 类只能在原始文件上返回 InputStream,但 InputStream 不能进行随机读取。
Android上有没有办法从原始数据文件中随机读取一些字节?或者当我只需要几个字节时,我必须将整个文件读入内存。
InputStream
可以用 跳过字节skip()
也可以用 标记偏移量mark()
,在reset()
它上面可以回到标记的位置。所有这些都可以用来做随机 IO。您也可以将字节偏移量存储在单独的查找文件中。
Android 是基于 Java 构建的,因此请查看本教程: http ://docs.oracle.com/javase/tutorial/essential/io/rafs.html