未找到Android文件路径

时间:2010-08-04 09:34:04

标签: android

我尝试做XML解析程序。 我还使用 FileInputStream 作为我的XML文件。 我将XML文件放在android的assets文件夹META-INF文件夹下。 那个文件名是“container.XML”。

这是我的代码parseXML,

 public void parseXMLinfoBook() throws FileNotFoundException, ParserConfigurationException, SAXException{

        FileInputStream in = new FileInputStream("file:///android_asset/META-INF/container.xml");

        StringBuffer inLine = new StringBuffer();
        InputStreamReader isr = new InputStreamReader(in);

        BufferedReader inRd = new BufferedReader(isr);

        SAXParserFactory spf=SAXParserFactory.newInstance();
        SAXParser spr=spf.newSAXParser();
        XMLReader xmlreader = spr.getXMLReader();

        XmlHandler xmlhe=new XmlHandler();
        xmlreader.setContentHandler(xmlhe);

        }

这是Button.SetonClick代码,

public void onClick(View v) {
                // TODO Auto-generated method stub
                try {
                    parseXMLinfoBook();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    tv.setText("ErrorPath "+e.getMessage());
                } catch (ParserConfigurationException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SAXException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });

我只收到错误消息。 希望有所帮助!

1 个答案:

答案 0 :(得分:3)

我假设您已将container.xml文件放在apk包内的应用程序资产目录中。

要在Android应用的/ assets目录中打开文件,您需要AssetManagergetAssets()在Context对象上可用,因此可供您的活动或服务使用。

AssetManager mgr = getContext().getAssets();
InputStream in = mgr.open("META-INF/container.xml");
InputStreamReader isr = new InputStreamReader(in);
//... Rest of the code