#android-studio #kotlin
Вопрос:
У меня есть функция, которая может записывать файл в файловую систему Android, но я хочу добавить данные. Моя функция создает новый файл каждый раз, когда я ее вызываю. Как я могу изменить, чтобы данные были добавлены в файл? Спасибо
забавный сохраненный документ(контекст : Контекст, имя файла: Строка, текст : Строка): Логический {
try {
val collection = MediaStore.Files.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
val dirDest = File(Environment.DIRECTORY_DOCUMENTS, context.getString(R.string.app_name)) // subfolder with name of the App
//val date = System.currentTimeMillis() // current datetime
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, fileName)
//put(MediaStore.MediaColumns.MIME_TYPE, "application/txt")
//put(MediaStore.MediaColumns.DATE_ADDED, date)
//put(MediaStore.MediaColumns.DATE_MODIFIED, date)
put(MediaStore.MediaColumns.RELATIVE_PATH, "$dirDest${File.separator}")
put(MediaStore.Files.FileColumns.IS_PENDING, 1)
}
val imageUri = context.contentResolver.insert(collection, contentValues)
imageUri?.let { uri ->
//context.contentResolver.openOutputStream(uri, "w").use { out -> out?.write(text.toByteArray()) } // write
context.contentResolver.openOutputStream(uri, "wa").use { out -> out?.write(text.toByteArray()) } // append
contentValues.clear()
contentValues.put(MediaStore.Files.FileColumns.IS_PENDING, 0)
context.contentResolver.update(uri, contentValues, null, null)
}
return(true)
}
catch (e: FileNotFoundException) {
return(false)
}
}