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. 蓝桥杯国赛-大胖子走迷宫
  2. php大牛额城战笔记,PHP语言大牛开发笔记(8)——MySQL数据库基础回顾[2]
  3. C++友元函数和友元类(三)
  4. [PHP] 现代化PHP之路:composer的镜像站设置
  5. 引用类型String的操作
  6. [POJ1463] Strategic game
  7. 物理借助传感器用计算机测速度,用打点计时器测速度教案_物理_教学设计_人教版...
  8. 数据库中字段随机添加汉字
  9. 【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
  10. 万亿安防市场前景可期 未来四大发展趋势分析
  11. vs应用程序无法正常启动
  12. 计算机类中英附录,欧盟gmp附录11-计算机系统(中英文对照)-20210410004737.docx-原创力文档...
  13. 优矿python开源_PythonStock(8):使用优矿web学习python入门
  14. Scala中名词的解释
  15. ftp上传工具,八款最佳的ftp上传下载工具,支持中文(ftp客户端分享)
  16. 2011年09月04日
  17. C 宏定义实现字符大小写转换
  18. K-Means聚类及调用sklearn库代码实现
  19. AutoSar CAN网络管理状态机理解
  20. 35岁的程序员:第16章,双重担忧

热门文章

  1. 无线通信设计秘密一:跳频技术
  2. 面试时,被问到的常见问题汇总
  3. NLP自然语言处理学习笔记(四)(转自咕泡AI)
  4. 2018 AI 产品趋势(上):智能音箱的下半场,出路在何方
  5. War3ArtTools学习笔记
  6. SGU 103 Traffic Lights (最短路)
  7. 新增三个读者服务专用群
  8. springboot项目集成websocket
  9. 开发 免费 短信控件 Redsky 1.0版本
  10. 计算机无法设置壁纸黑屏,Win7电脑壁纸变黑屏怎么办?不妨试试设置这些地方吧...