簡體   English   中英

android 11中/storage/emulated/路徑下的read.txt字段數據

[英]Read .txt field data from /storage/emulated/ path in android 11

我想從 /storage/emulated 應用程序特定路徑的.txt文件中讀取數據。 我已在同一個文件中成功寫入數據,但無法讀取。

將數據寫入txt文件的代碼。

val writer: FileOutputStream = openFileOutput(file.absolutePath, MODE_PRIVATE)
writer.write(str1.toByteArray())
writer.flush()
writer.close()

試圖從同一個文件中讀取數據。

val text = StringBuilder()
val br = BufferedReader(FileReader(file))
var line: String?
while (br.readLine().also { line = it } != null) {
 text.append(line)
 text.append('\n')
 }
 br.close()

行返回 null 值。

Try adding android:requestLegacyExternalStorage="true" to your manifest.

或者更改它以符合 Android 11 的新范圍存儲系統。 請參閱https://developer.android.com/about/versions/11/privacy/storage

我想從 /storage/emulated 應用程序特定路徑的 .txt 文件中讀取數據。 我已在同一個文件中成功寫入數據,但無法讀取。

您沒有寫入/storage/emulated目錄中的某個位置。 您使用openFileOutput() 寫入不同的位置。 要從該位置讀取,請使用openFileInput() ,即Context上的相應方法。 請務必使用您傳遞給openFileOutput()的相同文件名。

您應該寫入位置/storage/emulated目錄。 您已經使用過openFileOutput() 它指向 Context 上的getFilesDir()返回的位置。 你可以這么說,因為文檔說:

返回文件系統上存儲使用 openFileOutput(String, int) 創建的文件的目錄的絕對路徑。

要從您的位置讀取,請使用openFileInput() ,即 Context 上的相應方法,文件名與您傳遞給openFileOutput()的文件名相同。

暫無
暫無

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

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