2011-02-01 83 views
1

我試圖打開一個XML文件解析它,但我正在逐漸不再試圖打開該文件。我的代碼是:fileinputstream拋出filenotfoundexception?

 try { 
      return new FileInputStream(location); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return null; 
     } 

其中位置是一個傳入函數的字符串。一旦運行我的代碼,我得到:

java.io.FileNotFoundException:/C:/Users/Seth/AndroidWorkspace/UCoupon/res/xml/information.xml(沒有這樣的文件或目錄)

我給完整的文件路徑,而且我沒有任何拼寫錯誤。我究竟做錯了什麼?

回答

2

你不能從你的設備或仿真器讀取您的PC上的文件。

看到here的介紹,數據存儲和here用於訪問資源(這可能是你感興趣的,因爲你試圖訪問res/xml/

0

您不能訪問從您的主機系統文件(這似乎是視窗你的情況)。將文件複製到您的設備/仿真器的SD卡,並從那裏讀它 - 不要忘記使用許可WRITE_EXTERNAL_STORAGE。

1

您正在嘗試使用加載文件在您的PC上的真實路徑。仿真器對您的文件系統一無所知。

當你把一個XML到項目文件夾res/xml/可以使用STANDAR資源查找方式解析它:

XmlResourceParser xpp = res.getXml(R.xml.myxml); 其中myxml是XML文件的名稱不帶擴展名

+0

我看着成但無法理解它如何適應我的代碼。我實現了一個自定義的XML解析器,就像這裏的第八個示例:http://www.ibm.com/developerworks/opensource/library/x-android/index.html我正在嘗試編寫方法getInputStream(),以便我可以使用線 「Xml.parse(this.getInputStream(),Xml.Encoding.UTF_8,root.getContentHandler());」 – 2011-02-02 02:13:04

相關問題