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()}
}

Android Kotlin 文件读写操作扩展函数,Raw资源读取,Assets资源读取相关推荐

  1. Android sdcard文件读写操作

    这次演示以,安卓原生操作系统 Nexus_6手机进行操作: AndroidManifest.xml配置相关权限: <!-- 增加权限 --><uses-permission andr ...

  2. Android文件读写操作(assets 文件、 raw文件、内部存储文件、外部存储文件)

    Android中的文件读写操作是不可或缺的,每个应用都会涉及到读写操作.这里将读写操作分成了四个部分 assets文件夹中文件数据的读取 raw文件夹中的文件数据的读取 Android内部存储文件的读 ...

  3. 【转】Android - 文件读写操作 总结

    Android - 文件读写操作 总结 原文出处:http://blog.csdn.net/ztp800201/article/details/7322110 在android中的文件放在不同位置,它 ...

  4. Android中的文件读写操作

    在android开发中文件操作使用的其实还是比较高频的,之前我遇到这种需求都随便写写,对此没有一个比较全面的认识,所以想借这篇文章来梳理一遍. 由于需要读写文件,这包含了读写外部sd card的文件, ...

  5. android文件读写操作布局文件代码,android实现文件读写功能

    本文实例为大家分享了android实现文件读写功能的具体代码,供大家参考,具体内容如下 读取: public static String _getJsonString(String fileName) ...

  6. java大文件读写操作

    转载自:http://blog.csdn.net/akon_vm/article/details/7429245 RandomAccessFile RandomAccessFile是用来访问那些保存数 ...

  7. C++ builder 的文件读写操作总结

    C++ builder 的文件读写操作总结 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1.基于 ...

  8. linux gcc编译下的文件读写操作

    linux下的文件操作 所有目录             1.文件及文件系统的定义             2.linux文件的类型             3.linux文件的权限          ...

  9. C/C++ 文件读写操作总结

    C/C++ 文件读写操作总结 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1.基于C的文件操作: ...

最新文章

  1. 获取线程结束代码(Exit Code)
  2. 零基础Java学习之接口
  3. 0603贴片电阻阻值对照表_怎样读贴片电阻阻值
  4. keepalived安装实录
  5. Android开发之TextView的滚动显示
  6. 【STMT】等价类划分法
  7. win7更新错误代码80072efe怎么解决?
  8. Scratch打气球游戏 电子学会图形化编程scratch等级考试三级真题答案2019-9
  9. 家庭收支记账软件 (GO语言实现)
  10. 《亲爱的热爱的》:CTF黑客在线恋爱
  11. 【笔记】Oracle删除项目编号多余的数据
  12. java模拟简单的银行账户,可用于存取款,查询业务操作
  13. JavaScript 制作百度输入预测功能
  14. Paddle2.0实现中文新闻文本标题分类
  15. 4个方法:Excel筛选重复项
  16. Microsoft Teams Voice语音落地系列-4 实战:Teams语音路由规划与配置
  17. Android RIL代码详细分析
  18. C++ iostream库源码
  19. 奥运菜单不再有可笑的英文译名
  20. 轨迹聚类光谱分析_光谱聚类

热门文章

  1. Android 安卓动画 补间动画 - 组合(四个动画) 动画
  2. 云原生:K8s(Kubernetes)高频典型面试题夺命68问及答案
  3. 创造一切条件让大家“混”
  4. 咕泡学院P5人工智能深度学习笔记
  5. matlab 太阳黑子周期,太阳黑子周期分析
  6. 不要在.gsp文件中,加html注释
  7. 此生不戒多巴胺-冲刺日志(第二天)
  8. [附源码]SSM计算机毕业设计鞋店销售管理JAVA
  9. 山东人社厅灾备项目建设
  10. 在我的工程中移植文件系统--FATFS v14