簡體   English   中英

無法將文本文件寫入 Android 中的文檔文件夾

[英]Can't write text files to documents folder in Android

我有一個應用程序,我正在嘗試將熱像儀中的溫度值寫入文本文件。

昨天,我能夠解決這個問題: 如何在 Android 中編寫並不斷更新文本文件,盡管重新安裝后我不再能夠將文件寫入文檔目錄。

我收到以下異常:

W/System.err:java.io.FileNotFoundException:/storage/emulated/0/Documents/1658486312697.txt:打開失敗:EPERM(不允許操作)

編寫代碼:

long time = System.currentTimeMillis();
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
try {
    File outFile1 = new File(path+"/"+String.valueOf(time)+".txt");
    Log.e("outFile1:", outFile1.getAbsolutePath());
    Writer out = new BufferedWriter(new OutputStreamWriter(
                                 new FileOutputStream(outFile1,true), "utf-8"), 10240);
    for (int i = 10; i < 384*288+10; i++) {
        out.write(temperature1[i] + "\r\n");
    }
    out.flush();
    out.close();
} catch (Exception e){
    e.printStackTrace();
}

AndroidManifest.xml上的權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

我目前正在 Android 12 設備上進行測試,我想知道為什么我不能將我的文本文件保存到文檔中,以及需要做些什么才能以正確的方式保存它。

這是因為 outFile1 不存在。

File outFile1 = new File(path+"/"+String.valueOf(time)+".txt");
outFile1.createNewFile(); //add this line

並確保您已在應用程序設置中允許 MANAGE_EXTERNAL_STORAGE 權限。 在這里閱讀更多

而且對於低於 android 11 的設備,您必須使用“權限對話框”請求 WRITE_EXTERNAL_STORAGE 權限。 在這里閱讀更多

暫無
暫無

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

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