我的應用程序使用Galaxy適配器爲galaxy選項卡寫入外部SD卡。 當USB設備被「安全地移除」時,文件都可以,但是當設備被不安全地移除時,所有新寫入的文件都是0字節。0當在Android Galaxy Tab 10.1上未正確卸載時,外部USB設備上的字節文件
下面是代碼的削減版本:
String json = "{some data to export}";
String folderPath = Environment.getExternalStorageDirectory().toString() + File.separator + "Storages" + File.separator + "usb" + File.separator + "sda";
File outputFile = new File(folderPath, "export.txt");
FileWriter writer = new FileWriter(outputFile);
BufferedWriter out = new BufferedWriter(writer);
out.write(json);
out.flush();
out.close();
正如你可以看到我沖洗和關閉文件,但它看起來對我來說,Android是沒有真正困擾之前刷新內容USB被卸載。
顯而易見的解決方案是告訴用戶安全地卸載,但我們都知道用戶是什麼樣的。那麼有沒有辦法強制Android以文件格式刷新SD卡的內容? (除了BufferedWriter.flush/BufferedWriter.close)
該器件是一款三星Galaxy Tab 10.1 GT-P7510運行的是Android 3.1
'out.flush()'是多餘的,因爲'out.close()'在關閉Writer之前也會刷新緩衝區。它不會傷害任何東西,只是沒有必要。 – Chilledrat