2012-02-13 184 views
4

我有一個名爲bkup.xml的xml文件存儲在sdcard「/sdcard/bkup.xml」中。從SD卡讀取.xml文件

創建bkup.xml我已經使用了xmlSerialization。

我想從該bkup.xml文件檢索數據。

我見過很多例子,但其中大部分例子都是使用資源文件並使用URL作爲資源。但沒有人給出sdcard文件路徑的例子。

我不知道如何從該文件中獲取數據並解析它。

在此先感謝。

任何建議將理解

+0

發表你的代碼你還有什麼嘗試過嗎 – ingsaurabh 2012-02-13 12:25:43

+0

你能告訴我任何接受文件位置解析路徑的方法嗎? – 2012-02-13 12:27:48

回答

5

Here是與源的完整的示例。您只需要使用

File file = new File(Environment.getExternalStorageDirectory() 
        + "your_path/your_xml.xml"); 

然後進行進一步處理。

UPDATE

如果您需要例如,對於different類型XMLParsers可以downloadcompletehere例子。

+1

上面的代碼幫助我解決了這個問題。 謝謝.. – 2012-02-14 10:38:57

0

使用的FileReader對象是這樣的:

/** 
    * Fetch the entire contents of a text file, and return it in a String. 
    * This style of implementation does not throw Exceptions to the caller. 
    * 
    * @param aFile is a file which already exists and can be read. 
    * File file = new File(Environment.getExternalStorageDirectory() + "file path"); 
    */ 
    static public String getContents(File aFile) { 
    //...checks on aFile are elided 
    StringBuilder contents = new StringBuilder(); 

    try { 
     //use buffering, reading one line at a time 
     //FileReader always assumes default encoding is OK! 
     BufferedReader input = new BufferedReader(new FileReader(aFile)); 
     try { 
     String line = null; //not declared within while loop 
     /* 
     * readLine is a bit quirky : 
     * it returns the content of a line MINUS the newline. 
     * it returns null only for the END of the stream. 
     * it returns an empty String if two newlines appear in a row. 
     */ 
     while ((line = input.readLine()) != null){ 
      contents.append(line); 
      contents.append(System.getProperty("line.separator")); 
     } 
     } 
     finally { 
     input.close(); 
     } 
    } 
    catch (IOException ex){ 
     ex.printStackTrace(); 
    } 

    return contents.toString(); 
    } 

還需要添加權限訪問設備上的SD卡。