2016-06-28 66 views
0

我試圖以編程方式在索尼Android TV的內部存儲器中保存一個xml文檔。我以後也會需要接受這個文件。它甚至有可能做到,我應該如何處理?任何建議或解決方案?保存/訪問內部存儲,索尼Android TV

代碼:

public class xmlCreateFile { 
Boolean finished = false; 
String TAG = "xmlCreateFile"; 

public Boolean xmlCreate(){ 
    try { 

     DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 

     // root elements 
     Document doc = docBuilder.newDocument(); 
     Element rootElement = doc.createElement("company"); 
     doc.appendChild(rootElement); 

     // staff elements 
     Element staff = doc.createElement("Staff"); 
     rootElement.appendChild(staff); 

     // set attribute to staff element 
     Attr attr = doc.createAttribute("id"); 
     attr.setValue("1"); 
     staff.setAttributeNode(attr); 

     // shorten way 
     // staff.setAttribute("id", "1"); 

     // firstname elements 
     Element firstname = doc.createElement("firstname"); 
     firstname.appendChild(doc.createTextNode("yong")); 
     staff.appendChild(firstname); 

     // lastname elements 
     Element lastname = doc.createElement("lastname"); 
     lastname.appendChild(doc.createTextNode("mook kim")); 
     staff.appendChild(lastname); 

     // nickname elements 
     Element nickname = doc.createElement("nickname"); 
     nickname.appendChild(doc.createTextNode("mkyong")); 
     staff.appendChild(nickname); 

     // salary elements 
     Element salary = doc.createElement("salary"); 
     salary.appendChild(doc.createTextNode("100000")); 
     staff.appendChild(salary); 

     // write the content into xml file 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     DOMSource source = new DOMSource(doc); 
     File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); 
     StreamResult result = new StreamResult(path +"/file.xml"); 


     Log.d(TAG,"Env: " + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)); 
     //Output to console for testing 
     StreamResult result2 = new StreamResult(System.out); 

     // transformer.transform(source, result); 
     transformer.transform(source, result2); 

     finished = true; 


    } catch (ParserConfigurationException pce) { 
     pce.printStackTrace(); 
    } catch (TransformerException tfe) { 
     tfe.printStackTrace(); 
    } 
    return finished; 
} 
} 

回答

0

有一個number of ways將數據存儲在設備上。看起來你只需要這些信息對你的應用可見,所以你可以使用私人的Internal Storage APIs

這些API使存儲和檢索文件變得相對容易。這是一個簡短的例子。

// Save a file 
    String FILENAME = "textfile.txt"; 
    String writeString = "hello world!"; 

    FileOutputStream fos = getActivity().openFileOutput(FILENAME, Context.MODE_PRIVATE); 
    fos.write(writeString.getBytes()); 
    fos.close(); 

    // Read file 
    FileInputStream fis = getActivity().openFileInput(FILENAME); 
    StringBuilder builder = new StringBuilder(); 
    int inputChar; 
    while((inputChar = fis.read()) != -1) { 
     builder.append((char) inputChar); 
    } 
    fis.close(); 
    String readString = builder.toString(); 
+0

謝謝,像魅力一樣工作,然後嘗試使用StringBuilder。 – Mokrab