Kotlin笔记(58) — 文件读写

2021-02-22  本文已影响0人  奔跑的佩恩

前言

Android开发过程中,我们还涉及到文件读写的问题,Kotlin在文件读写方面,更是有很多优势,下面就来具体讲讲吧。

今天涉及知识有:

  1. 文件读写权限问题
  2. 文件路径获取
  3. 文件读写在Activity中具体使用
  4. 效果图

下面给出文件读写打印log:

====publicPath=/storage/emulated/0/Download
====privatePath=/storage/emulated/0/Android/data/com.kotlintest/files/Download
======写入成功====
======追加成功====
======读取所有内容为: 我是中国人一切都是幻觉
    这是啥意思
====每行内容: 我是中国人一切都是幻觉
====每行内容: 这是啥意思

一.文件读写权限问题

文件读写的话,涉及到很多依赖,权限及File的问题,先是要在你项目的androidmainfast.xml中添加读写权限,如下:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

然后需要添加手动权限库,这里我使用的是PermissionsDispatcher,手动库的添加大家可以参考以下文章:
PermissionsDispatcher动态权限申请kotlin版
接着需要添加FileProvider相关处理,大家可参考以下文章
SpUtil多样加密存储,兼容android9.0

二. 文件路径获取

获取公共空间路径及app所在私有路径代码如下:

        var publicPath =
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
                .toString()
        LogUtil.i("====publicPath=$publicPath")

        //获取当前app的私有存数路径
        var privatePath = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).toString()
        LogUtil.i("====privatePath=$privatePath")

打印结果如下:

====publicPath=/storage/emulated/0/Download
====privatePath=/storage/emulated/0/Android/data/com.kotlintest/files/Download

非常可惜的是Android7.0以后以上路径就禁止访问了
连上手机,以上路径下的内容是不能看见的,如下:

image.png

三. 文件读写在Activity中具体使用

下面列出 文件操作在TempActivity使用的代码:

上一篇 下一篇

猜你喜欢

热点阅读