[英]Why Cant I Read/Write to Text File In Android Studio Kotlin
[英]Android Studio Kotlin File Read
嘿,我有這個工作的 FileWrite 例程,我可以簡單地調用它
writeFile("Filename as String","Filetext as String")
但我無法讀回我嘗試過很多解決方案的文件。 我只想像這樣調用讀取例程:readFile("Filename as String") 文件數據應該 go 到 Sting:"txtfromfile"
`fun writeFile(name : String, data : String) {
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, name)
put(MediaStore.MediaColumns.MIME_TYPE, "text/plain")
put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOCUMENTS + "/Sunny/")
}
val extVolumeUri: Uri = MediaStore.Files.getContentUri("external")
// query for the file
val cursor: Cursor? = contentResolver.query(
extVolumeUri,
null,
MediaStore.MediaColumns.DISPLAY_NAME + " = ? AND " + MediaStore.MediaColumns.MIME_TYPE + " = ?",
arrayOf(name, "text/plain"),
null
)
var fileUri: Uri? = null
// if file found
if (cursor != null && cursor.count > 0) {
// get URI
while (cursor.moveToNext()) {
val nameIndex = cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME)
if (nameIndex > -1) {
val displayName = cursor.getString(nameIndex)
if (displayName == name) {
val idIndex = cursor.getColumnIndex(MediaStore.MediaColumns._ID)
if (idIndex > -1) {
val id = cursor.getLong(idIndex)
fileUri = ContentUris.withAppendedId(extVolumeUri, id)
}
}
}
}
cursor.close()
} else {
// insert new file otherwise
fileUri = contentResolver.insert(extVolumeUri, contentValues)
}
if (fileUri != null) {
val os = contentResolver.openOutputStream(fileUri, "wt")
if (os != null) {
os.write(data.toByteArray())
os.close()
}
}
}`
我嘗試了很多閱讀例程,但我找不到任何可以像我的寫例程一樣調用的例程
我試過了,但它給了我“java.io.FileNotFoundException:打開失敗:ENOENT(沒有這樣的文件或目錄)”
fun readFile(name : String) {
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, name)
put(MediaStore.MediaColumns.MIME_TYPE, "text/plain")
put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOCUMENTS + "/Sunny/")
}
val extVolumeUri: Uri = MediaStore.Files.getContentUri("external")
var fileUri: Uri? = null
fileUri = contentResolver.insert(extVolumeUri, contentValues)
val os = fileUri?.let { contentResolver.openInputStream(it) }
if (os != null) {
txtfromfile = os.read().toString()
os.close()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.