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