此代码创建文件,但始终为空。
我已经看到一些使用StringWriter的示例,但是我的XML文件可能会变得如此之大,将其保存到编写器,将其转换为字符串然后再将其写入文件似乎并不实际。应该是流。
或者也许我不知道我在说什么,完全迷惑了自己。
private void createXMLfile(File file, long folderRoot) throws IllegalArgumentException, IllegalStateException, IOException {
// https://developer.android.com/reference/org/xmlpull/v1/XmlSerializer
// https://stackoverflow.com/questions/5181294/how-to-create-xml-file-in-android
file.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(file);
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(fileOutputStream, G.KML.XML_ENCODING); // XML_ENCODING = "UTF-8"
serializer.startDocument(G.KML.XML_ENCODING, Boolean.valueOf(true));
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
serializer.startTag(null, G.KML.KML); // KML = "kml"
serializer.endTag(null, G.KML.KML);
serializer.endDocument();
serializer.flush();
fileOutputStream.flush();
fileOutputStream.close();
}
我的清单权限:
<!-- Following two permissions are for import/export functionality -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
此文件正在写入:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
...但是用户可以更改文件的保存位置。
答案 0 :(得分:0)
setFeature应该先调用还是不调用,不需要createNewFile。关闭已经进行了刷新。