我现在在一个小组工作,编写一个需要能够引用未在运行时写入的文件的应用程序。本质上,该文件存储应用程序(游戏)在某些点使用的数据。
我在运行时保存文件然后引用这些文件没有任何问题,但出于某种原因,我在使用文件路径引用文件时遇到了问题。
给我带来问题的代码是:
File abilityFile = new File("/assets/xml/abilities.xml");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document doc = builder.parse(abilityFile);
在该块的最后一行,我得到一个IOError。我假设我存储文件的方式或我引用它的方式在Android手机上不起作用,但我不知道。
如果我是对的,有没有办法存储文件(在运行时没有编写和保存),以便应用程序可以访问它?我该怎么做?
如果我错了,我做错了什么?这可能是我想念的简单事情,但我一直在寻找解决方案,并且无法找到很多关于这个特定问题的信息。我发现了大量有关编写文件或引用外部存储文件的信息,但没有找到有关应用程序存储在目录中的引用文件的信息。
谢谢。
答案 0 :(得分:1)
我建议您将xml文件放在resources/xml
而不是资源/资源中。请参阅:http://developer.android.com/guide/topics/resources/providing-resources.html
如果您设置使用assets目录,则需要使用AssetManager
类来检索该文件,而不是创建File
对象。
http://developer.android.com/reference/android/content/res/AssetManager.html