我使用的打印作家和FileOutputStream中使用下面的函數寫在android系統異步任務文件:文件大小不顯示正確的android系統
public static void saveFileToExternalMemoryAsync(Context context,String fileName, String json)throws Exception{
File AppPath = new File(Environment.getExternalStorageDirectory() + "/PDMA/DMAPPOutputs/");
if (!AppPath.exists()) {
AppPath.mkdirs();
}
File outputFile = new File(AppPath.getAbsolutePath() + "/" + fileName + ".dmapp");
if (!outputFile.exists())
outputFile.createNewFile();
MediaScannerConnection.scanFile(context, new String[] {AppPath.toString(),outputFile.toString()}, null, null);
FileOutputStream fileOutputStream = new FileOutputStream(outputFile, true);
PrintWriter pw = new PrintWriter(fileOutputStream);
try{
pw.println(json);
pw.flush();
pw.close();
fileOutputStream.flush();
fileOutputStream.close();
}catch (Exception e){
e.printStackTrace();
}finally{
pw.flush();
pw.close();
fileOutputStream.flush();
fileOutputStream.close();
MediaScannerConnection.scanFile(context, new String[] {AppPath.toString(),outputFile.toString()}, null, null);
}
}
問題是,當我試圖通過連接移動到這個文件複製電腦在mtp,它沒有完全複製。如果我右鍵單擊以查看它的大小,則它小於實際值。現在,如果在Android中,我複製並粘貼此文件在其他地方,說下載文件夾,大小是正確的,文件也是完整的。
可能是什麼問題。
UPDATE:
如果我用FileOutputStream中由一個寫一個字節,則生成的文件,但我不得不關閉應用程序從PC訪問該文件。
您只應在媒體掃描器寫入文件後調用媒體掃描器一次。 – greenapps
'if(!outputFile.exists()) outputFile.createNewFile();'。刪除這些線。沒用的。該文件將由新的文件輸出流創建。 – greenapps
'AppPath.mkdirs();'。檢查返回值! }' – greenapps