簡體   English   中英

為什么此FileOutputStream創建一個空文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM