gpt4 book ai didi

android - 创建xml文件并将其保存在内部存储android

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:45 32 4
gpt4 key购买 nike

如果 new.xml 存在(将由我创建),我想检查 android 内部存储,然后它应该返回给我一个句柄,我可以很容易地附加新的数据到它。如果它不存在创建一个新的并向它添加数据。

我的 xml 文件结构将像这样简单。

<root>
<record>a</record>
<record>b</record>
<record>c</record>
</root>

如果文件存在,我只会向其中添加一条新记录。但如果不存在,我将创建一个新文件并向其中添加第一条记录。

以及我将如何在 arraylist 中读取这些数据。提前感谢一个带有代码的示例。

最佳答案

这很简单。这将帮助您:

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();

使用 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());
}

关于android - 创建xml文件并将其保存在内部存储android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687074/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com