我将employeedetailxml放入名为“res \ raw”的文件夹中。当我尝试通过指定文件和文件夹名称来打开它时,我收到错误“找不到文件”。
如何指定文件的路径?
我更希望能够将“ R.raw.employeedetailxml ”传递给FileInputStream
以指定它打开该文件。那可能吗? (我试了一下,但得到了一个错误。)
FileInputStream
可以将资源ID作为参数吗?
try{
SAXParserFactory spf=SAXParserFactory.newInstance();
SAXParser sp=spf.newSAXParser();
XMLReader xr=sp.getXMLReader();
EmployeeDetailHandler empDetailHandler=new EmployeeDetailHandler();
xr.setContentHandler(empDetailHandler);
xr.parse(new InputSource(new FileInputStream("\\res\\raw\\employeedetailxml.xml")));
}
答案 0 :(得分:8)
是的,您可以使用类似于传递R.raw.employeedetailxml
的内容。您只需要使用该资源名称获取资源XML文件,如下所示:
InputStream ins = getResources().openRawResource(R.raw.file_name);
答案 1 :(得分:5)
试试这个:
InputStream inputStream =
getResources().openRawResource(R.raw.employeedetailxml);
答案 2 :(得分:4)
this.getResources().openRawResource()
会返回InputStream
,可能会帮助您解析xml。
答案 3 :(得分:1)
如果将xml文件放在资产下没有伤害,你可以试试这个:
AssetManager manager = getAssets();
InputStream inputStream = manager.open("pathUnderAssets/filename.xml");
请注意,getAssets()调用是在上下文中进行的。因此,您必须在非活动的类中使用上下文调用它。