[英]Why is this FileOutputStream creating an empty file?
此代碼創建文件,但始終為空。
我已經看到了一些使用StringWriter的示例,但是我的XML文件可能會變得很大,將其保存到writer,將其轉換為字符串然后再將其寫入文件似乎並不實際。 它應該是流。
或者,也許我不知道我在說什么,完全迷惑了自己。
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);
...但是用戶可以更改文件的保存位置。
應該首先調用setFeature,而不需要調用createNewFile。 關閉已經進行了刷新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.