我正在制作一个简单的Android应用程序,我在解析一个简单的XML文件时遇到了问题。 即使文件存在,我也得到FileNotFoundException,我拥有它的所有权限。我试图以所有可能的方式修改路径,但我总是抛出这个异常。
这是我的代码 在主要活动中:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Engine engine = new Engine();
engine.parse();
}
在引擎类中:
public void parse() {
try {
File fXmlFile = new File("/res/XML/users.xml");
if (!fXmlFile.exists()) {
throw new FileNotFoundException("Failed to find file: " +
fXmlFile.getAbsolutePath());
}
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
...
它看起来很简单,但我无法让它发挥作用。对我做错了什么的想法?
答案 0 :(得分:2)
为了从资源中获取文件,您可以使用两个调用之一。
退房。 http://developer.android.com/reference/android/content/res/Resources.html
您可以使用context.getResources().openRawResource(R.xml.users)
这将返回一个输入流,允许您读取文件。
或者,您可以致电context.getResources().getXml(R.xml.users)
这将返回一个XML资源解析器,这是一个允许您解析xml的pullParser。