java - 随机访问 Android Assets

标签 java android random inputstream assets

我想知道如何随机访问 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/

相关文章:

android - 将现有的原生 Android 项目迁移到基于 Cordova 的项目

java - 需要等待 MainActivity 中改造请求的答复

android - 警报对话已保护访问权限

android - 如何将随机图像设置为 ImageView 的?

c# - 随机生成数字 1 的次数超过 90%

java - 在java中如何继续执行else if?

java - JOptionPane showInputDialog null?

Java计算从今天开始的过去日期将进入 future

java - 访问 osgi 包的 lib jar

在 Lua 中随机化数字而不重复