首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 外部存儲創建文件:正確使用 getExternalFilesDir 與 FileOutputStream

     編輯:程式設計綜合問答

錯誤代碼

File file = new File(context.getExternalFilesDir(null), "state.txt");
FileOutputStream os = context.openFileOutput(data, MODE_PRIVATE); // 錯誤:openFileOutput 寫內部存儲,非外部

正確寫法

File file = new File(context.getExternalFilesDir(null), "state.txt");
try (FileOutputStream fos = new FileOutputStream(file);
     OutputStreamWriter osw = new OutputStreamWriter(fos)) {
    osw.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

關鍵點

  • getExternalFilesDir(null) 返回應用專屬外部存儲目錄(/sdcard/Android/data/pkg/files/),無需權限,應用卸載自動刪除。
  • 若需公共目錄(如 Pictures),用 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),需 WRITE_EXTERNAL_STORAGE 權限。
  • API 29+ 分區存儲限制訪問其他應用文件,優先使用專屬目錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved