簡體   English   中英

無法在Android中寫入文件

[英]Can't write to file in Android

下面的以下代碼片段似乎成功創建了一個文件,並且writeData函數適當地寫入了StringWriter ,但是該文件似乎為空。

fileOutputStream = new FileOutputStream(selectedFile);

if(!selectedFile.exists())
    selectedFile.createNewFile();


StringWriter writer = new StringWriter();
serializer.setOutput(writer);

Log.i(TAG, "- Output is asigned to the special Serializer object");     

/* The target data is written to the a string buffer in the StringWriter */
writeData(serializer, templateData); 

Log.i(TAG, String.format("- New file Data written: %s", writer.toString())); // Logcat prints the file data from this string beautifully..      

fileOutputStream.write(writer.toString().getBytes()); // Not happening?! Why :(
fileOutputStream.close();

字符串絕對不是空的!

但是,創建的文件為空! 我還嘗試了使用OuputStreamWriter之類的變體,但未將文件寫入。 為什么? 我正在Nexus 7平板電腦上對此進行測試,並且設置了WRITE_EXTERNAL_STORAGE權限。

更新:所有文件都在此過程中創建。 文件的訪問許可被創建為“ _rw”。

我使用的其他方法給出的結果完全相同:

FileWriter fw = new FileWriter(selectedFile.getPath());
fw.write(writer.toString());
fw.flush();
fw.close();

在所有情況下,都是通過createNewFile()創建文件的,但是從未寫入任何數據。 該應用程序正常運行,不會拋出任何東西。 我只是不明白:'(

FileOutputStream fOut = openFileOutput(selectedFile);//u can use (filename, Context.MODE_APPEND | Context.MODE_WORLD_READABLE)

if(!selectedFile.exists())
    selectedFile.createNewFile();

OutputStreamWriter osw = new OutputStreamWriter(fOut);
      osw.append(templateData);
      osw.flush();
      osw.close();

如果在寫入文件后調用FileOutputStream.FileOutputStream(File),則所有數據將被刪除。 看看這個線程: 如何在不丟失舊數據的情況下使用FileOutputStream寫入數據?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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