gpt4 book ai didi

java - 如何在 Android 内部存储中保存 XML 文件

转载 作者:行者123 更新时间:2023-12-01 12:19:35 24 4
gpt4 key购买 nike

我已经发布了一个具有相似名称的问题。我试图删除它,但由于它有答案,我无法删除它。然而,我现在的问题是不同的,因为我被整个方法困住了。对于可能给您带来的不便,我深表歉意,并希望您仍能帮助我。

这是我的代码:

public void fetchXML(){
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {

URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection)
url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();

xmlFactoryObject = XmlPullParserFactory.newInstance();
XmlPullParser myparser = xmlFactoryObject.newPullParser();

myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES
, false);
myparser.setInput(is, null);
parseXMLAndStoreIt(myparser);
is.close();
} catch (Exception e) {
e.printStackTrace();
}

}

});

thread.start();
}

说明: fetchXML() 位于 HandleXML 类 (HandleXML.java) 内,因此不在 MainActivity 中code>,我认为这可能很重要,同时复制/粘贴有关如何从 Web 保存文件的代码(观看教程)。当我似乎实现如下代码时:

从 Android 教程页面复制:

String filename = "myfile";
String string = "Hello world!";
FileOutputStream outputStream;

try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(string.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}

我收到 openFileOutput 错误。

问题:如何以最简单的方式保存从 fetchXML() 获取的 InputStream ?代码 fragment 确实是一种品味。

希望有人能帮忙。谢谢。

最佳答案

在内部存储中创建 DOM xml 文件的示例:

public void CreateXmlFile(){
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
builder = dbf.newDocumentBuilder();
Document doc = builder.newDocument();

// root element
org.w3c.dom.Element root = doc.createElement("mobile-app");
doc.appendChild(root);
//create a comment
Comment comment=doc.createComment("This is comment");
//add in the root element
root.appendChild(comment);

prettyPrint(doc);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

public final void prettyPrint(Document xml) throws Exception {
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
tf.setOutputProperty(OutputKeys.INDENT, "yes");
Writer out = new StringWriter();
tf.transform(new DOMSource(xml), new StreamResult(getFilesDir().getAbsolutePath() + "/newXmlFile.xml"));
System.out.println(out.toString());
}

关于java - 如何在 Android 内部存储中保存 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26795775/

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