600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android Kotlin 文件读写操作扩展函数 Raw资源读取 Assets资源读取

Android Kotlin 文件读写操作扩展函数 Raw资源读取 Assets资源读取

时间:2024-04-19 04:16:40

相关推荐

Android Kotlin 文件读写操作扩展函数 Raw资源读取 Assets资源读取

1、保存内容到文件及文件读取

/*** 保存信息到File* @param fileName 文件名* @param content 保存内容* @param mode 模式*/fun Context.saveIntoFile(fileName: String,content: String,mode: Int = Context.MODE_PRIVATE): Boolean {return try {openFileOutput(fileName, mode).use {it.write(content.toByteArray())true}} catch (e: Exception) {false}}/*** 读取文件* @param fileName 文件名*/fun Context.readFromFile(fileName: String): String {val sb = StringBuilder()openFileInput(fileName).use {val temp = ByteArray(1024)var len = 0while (true) {len = it.read(temp)if (len <= 0) breaksb.append(String(temp, 0, len))}}return sb.toString()}

在Activity中使用

//保存saveIntoFile(FILE_NAME, content)//读取val content = readFromFile(FILE_NAME)

2、保存内容到SD卡中的文件及SD卡文件读取

/*** 写文件到SD卡* eg:/storage/emulated/0/Android/data/com.guc.androiddemo/files/Documents/fileName* @param fileName 文件名* @param content 内容* @param type 文件类型* {@link android.os.Environment#DIRECTORY_MUSIC},* {@link android.os.Environment#DIRECTORY_PODCASTS},* {@link android.os.Environment#DIRECTORY_RINGTONES},* {@link android.os.Environment#DIRECTORY_ALARMS},* {@link android.os.Environment#DIRECTORY_NOTIFICATIONS},* {@link android.os.Environment#DIRECTORY_PICTURES}, or* {@link android.os.Environment#DIRECTORY_MOVIES}.*/fun Context.saveFileToSD(fileName: String,content: String,type: String = Environment.DIRECTORY_DOCUMENTS) {if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {val fn = getExternalFilesDir(type)?.canonicalPath + "/" + fileNameFileOutputStream(fn).use {it.write(content.toByteArray())}} else {throw Exception("没有存储卡")}}/*** 读取SD中文件* eg:/storage/emulated/0/Android/data/com.guc.androiddemo/files/Documents/fileName* @param fileName 文件名* @param type 文件类型-Documents*/fun Context.readFromSD(fileName: String,type: String = Environment.DIRECTORY_DOCUMENTS): String {return if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {val sb = StringBuilder()val fn = getExternalFilesDir(type)?.canonicalPath + "/" + fileNameFileInputStream(fn).use {val temp = ByteArray(1024)var len = 0while (true) {len = it.read(temp)if (len <= 0) breaksb.append(String(temp, 0, len))}}sb.toString()} else {throw Exception("没有存储卡")}}

Activity中使用

//保存saveFileToSD(FILE_NAME, content)//读取val content = readFromSD(FILE_NAME)

3、读取Raw文件

/*** 读取Raw文件中的内容* @param rawId Raw文件ID:R.id.info*/fun Context.readRaw(rawId: Int): String {return BufferedReader(InputStreamReader(resources.openRawResource(rawId))).use {val sb = StringBuilder()it.forEachLine { s ->sb.append(s)}sb.toString()}}

4、读取Assets文件

/*** 读取Raw文件中的内容* @param rawId Raw文件ID:R.id.info*/fun Context.readRaw(rawId: Int): String {return BufferedReader(InputStreamReader(resources.openRawResource(rawId))).use {val sb = StringBuilder()it.forEachLine { s ->sb.append(s)}sb.toString()}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。