我想检查android内部存储如果new.xml
存在(将由我创建)然后它应该返回给我一个句柄,我可以很容易地向它添加新数据.如果它不存在,请创建一个新的一个并向其添加数据.
我的xml文件结构就像这样简单.
<root>
<record>a</record>
<record>b</record>
<record>c</record>
</root>
Run Code Online (Sandbox Code Playgroud)
如果文件在那里我只会向它添加一条新记录.但如果不是我将创建一个新文件并将第一条记录添加到它.
以及我如何能够以一种方式读取这些数据arraylist
.代码的一个例子非常感谢提前.
Vik*_*pta 16
这很简单.这将有助于你:
String filename = "file.txt";
FileOutputStream fos;
fos = openFileOutput(filename,Context.MODE_APPEND);
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(fos, "UTF-8");
serializer.startDocument(null, Boolean.valueOf(true));
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
serializer.startTag(null, "root");
for(int j = 0; j < 3; j++)
{
serializer.startTag(null, "record");
serializer.text(data);
serializer.endTag(null, "record");
}
serializer.endDocument();
serializer.flush();
fos.close();
Run Code Online (Sandbox Code Playgroud)
使用DOM解析器读回数据:
FileInputStream fis = null;
InputStreamReader isr = null;
fis = context.openFileInput(filename);
isr = new InputStreamReader(fis);
char[] inputBuffer = new char[fis.available()];
isr.read(inputBuffer);
data = new String(inputBuffer);
isr.close();
fis.close();
/*
* Converting the String data to XML format so
* that the DOM parser understands it as an XML input.
*/
InputStream is = new ByteArrayInputStream(data.getBytes("UTF-8"));
ArrayList<XmlData> xmlDataList = new ArrayList<XmlData>();
XmlData xmlDataObj;
DocumentBuilderFactory dbf;
DocumentBuilder db;
NodeList items = null;
Document dom;
dbf = DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();
dom = db.parse(is);
// Normalize the document
dom.getDocumentElement().normalize();
items = dom.getElementsByTagName("record");
ArrayList<String> arr = new ArrayList<String>();
for (int i = 0; i < items.getLength(); i++)
{
Node item = items.item(i);
arr.add(item.getNodeValue());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28046 次 |
最近记录: |