我想知道如何随机访问 Android Assets 。 AssetManager 类提供“open”方法,您可以将 AssetManager.ACCESS_RANDOM 传递给该方法。文档说,当传递 ACCESS_RANDOM 时,您可以在文件中向前和向后查找(特别是向后查找是我需要的)。 但是,无论请求哪种访问模式,open 方法始终返回一个 InputStream 对象。 所以我的问题是:如何在不提供此类方法的InputStream上调用seek方法?我必须将 InputStream 转换到哪个类?我在网上搜索这个问题已经有一段时间了,但我找不到任何对我有帮助的东西。
谢谢!
最佳答案
查看 this source ,方法 open(String fileName, int accessMode)
实际上返回一个 AssetInputStream
。
我没有测试它,但您也许可以将 open()
方法的 InputStream
转换为 AssetInputStream
,这offers the methods你正在寻找。特别是,skip(long n)
方法将允许您跳过文件的前 n
字节。
您可以尝试一下,看看是否有效。
编辑:如果您正在寻找对文件的完全随机访问,我想这是不可能的。请参阅this answer了解更多信息。
关于java - 随机访问 Android Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261236/