我是Android新手我正在嘗試從Android和xml文件讀取和寫入一些信息。我認爲如果我使用DOM解析器來做這種事情是可能的......我在應用程序的開始處讀取文件以獲取數據並在應用程序終止之前嘗試保存以存儲配置更改。我想出瞭如何從raw/xml讀取文件,但它似乎是一個真正的痛苦(甚至不可能)將修改後的xml保存在這裏... 也許我採取錯誤的方法,但我相信它應該有可能以某種方式在Android中修改一些內部xml文件。如何去做呢?使用DOM解析器讀取和寫入內部android xml文件
0
A
回答
0
您不能修改或更新raw/xml
文件目錄。 Android /res
目錄是只讀。所以你只能從它讀取文件而不允許回寫。 (由於Android .apk文件具有隻讀權限)。
0
ü存儲在機器人app.u需要xml folder
到copy
該文件,而安裝在設備上的應用程序,以sdcard/internal storage
和修改it.In這種情況下,U可以使用DOM解析器讀取和SD卡從/內部存儲編寫XML文件cant modify
XML的設備。
0
@ user370305是對的!
簡單的邏輯是,你不能在運行時在存儲器(原始資產,資產,佈局等)內部創建一個文件。因此你可以通過授予「write_external_storage」權限在外部創建一個不同的文件。然後你可以閱讀或寫作。
下面是一個例子
public void readXML() throws IOException{
//get the xml file from the raw folder
InputStream is = getResources().openRawResource(
R.raw. config);
Resources r = getResources();
AssetManager assetManager = r .getAssets();
//then write the dummy file
File f = new File(Environment.getExternalStorageDirectory(), "dummy.xml");
OutputStream os = new FileOutputStream(f , true);
final int buffer_size = 1024 * 1024;
try
{
byte [] bytes = new byte [buffer_size ];
for (;;)
{
int count = is.read(bytes, 0, buffer_size);
if (count == -1)
break ;
os.write(bytes , 0, count);
}
is.close();
os.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
//then parse it
parseConfigXML(f);
}
public String parseConfigXML(File configXML) {
XmlPullParser xpp = null ;
String httpUrl= "";
FileInputStream fis ;
XmlPullParserFactory factory = null ;
try {
fis = new FileInputStream(configXML);
factory = XmlPullParserFactory.newInstance();
factory .setNamespaceAware(true);
xpp = factory .newPullParser();
xpp .setInput(new InputStreamReader(fis));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser. END_DOCUMENT) {
if (eventType == XmlPullParser. START_DOCUMENT) {
} else if (eventType == XmlPullParser. START_TAG) {
} else if (eventType == XmlPullParser. END_TAG) {
} else if (eventType == XmlPullParser. TEXT) {
httpUrl += xpp .getText().replace("\n", "");
}
eventType = xpp .next();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return httpUrl .trim().replace("\n", "");
}
相關問題
- 1. 如何使用DOM解析器從XML文件讀取註釋
- 2. QT:讀取一個xml文件並使用DOM解析器解析它
- 3. 如何使用JxPath和DOM解析器解析XML文件
- 4. 使用DOM解析器讀取XML文件在第一次輸入後崩潰
- 5. 使用DOM解析器讀取XML文件和輸出存儲到MySQL
- 6. java DOM XML解析器內部元素
- 7. (讀取和)從內部存儲解析XML文件
- 8. 在android中使用DOM解析器解析存儲在內部存儲器中的XML文件。
- 9. 如何從assets文件夾讀入DOM XML解析器?
- 10. nullpointerexception嘗試從XML文件與DOM解析器讀取
- 11. 在android中讀取xml文件 - 解析
- 12. 使用DOM解析器和SAX解析器進行Android XML解析的區別
- 13. 如何使用xml sax解析器讀取和寫入大型xml?
- 14. 使用xml解析器讀取xml
- 15. 使Android XML讀取器僅讀取XML文件的一部分
- 16. Doc xml解析器android本地xml文件讀取
- 17. 如何讀取和解析.xml文件
- 18. 從Android手機的內部存儲器寫入/讀取文件
- 19. 如何在Java中使用Sax/Dom解析器讀取xml文件?
- 20. DOM XML解析android
- 21. Java:使用DOM API解析xml文件
- 22. Android將文件讀取和寫入內部存儲
- 23. IOS和XML解析器(讀文件)
- 24. Python - 讀取,解析和寫回文件
- 25. 使用DOM解析器的Android XML解析問題
- 26. 如何在android中使用dom解析器解析xml?
- 27. 解析XML DOM文件
- 28. 讀取和寫入XML文件
- 29. 如何讀取和寫入XML文件?
- 30. 讀取和寫入XML文件
我預料到......有另一種方式來存儲在Android的xml文件內部,仍然有對寫入權限或者它只是不可能的,我必須訪問某些外部XML文件(例如通過網絡)來做到這一點? – user2183977 2013-04-24 09:49:51
您可以在路徑'/ data/data/<軟件包名稱>/files'中將它存儲在設備空間的應用程序內部存儲器中。在應用程序中,您可以使用'getFilesDir();' – user370305 2013-04-24 09:51:52
獲取此路徑請查看http://developer.android.com/guide/topics/data/data-data-storage.html#files內部 – user370305 2013-04-24 09:54:14