2016-06-28 3 views
0

Я пытаюсь сохранить документ xml программно внутри внутреннего хранилища моего телевизора Sony Android. Я также буду позже использовать этот файл. Возможно ли это сделать и как я должен подходить к этому? Любые предложения или решения?Сохранение/расширение внутреннего хранилища, Sony 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

Смежные вопросы