Android文件的存储方式

Android在以前的时候大多都是可以插内存卡的,那时候就是8G的手机插一个64G的内存卡,手机就是内存存储,内存卡就是外部存储

而后来的手机虽然表面上没有外部存储了,但是在Android系统中,仍然是有这样区分的,我们可以通过AS的DeviceFileExploree来查看有什么区别

1)内部存储

在DeviceFileExploree上查看的文件路径为/data/data+你应用的包名

内部存储.png

查看内部存储路径的代码为

   //内部存储根目录   val environment = Environment.getDataDirectory().absolutePath   //应用内部存储包名下的file文件夹   val filePath = filesDir.absolutePath   //应用内部存储包名下的cache文件夹   val cache = cacheDir.absolutePath   //在应用内部存储包下创建文件夹,什么都不写默认创建app_文件夹   val path = getDir("", Context.MODE_PRIVATE)   Log.d(tag, "environment:$environment")   Log.d(tag, "filePath:$filePath")   Log.d(tag, "cache:$cache")   Log.d(tag, "path:$path")

输出结果

内部存储打印.png

输出结果并不是一开始说的data/data,而是/data/user/0/,因为data/user/0/才是真实的路径,不过因为设备没有root,AS无法查看真实的路径,如果我们使用雷电模拟器(具备root)就可以查看到真实路径

不过对于我们的使用并没有影响

2)外部存储

文件路径为sdcard/Android/data/+包名

外部存储.png

查看外部存储路径的代码为

    //外部存储根目录    val environment = Environment.getExternalStorageDirectory().absolutePath    //应用外部存储包名下的file文件夹    val filePath = getExternalFilesDir(null).absolutePath    //应用外部存储包名下的cache文件夹    val cache = externalCacheDir.absolutePath    Log.d(tag, "environment:$environment")    Log.d(tag, "filePath:$filePath")    Log.d(tag, "cache:$cache")

输出结果

外部存储打印.png

Android文件存储读写

1)kotlin进行文本读写

kotlin在外部存储中写文本文件,这种方式是覆盖形式的读写

val filePath = getExternalFilesDir(null).absolutePath+File.separator+"a.txt"File(filePath).writeText("Hello")//覆盖原先的文本内容//File(filePath).writeText("Hello")//在原先的文本内容上追加

在AS Device中查看

查看内容.png

在外部存储中读取文本代码

val filePath = getExternalFilesDir(null).absolutePath+        File.separator+"a.txt"//读取文件的文本内容val content = File(filePath).readText()

输出

读取文本输出.png

2)Java进行文本读写

算了,Java太麻烦了,以后不想用了...

更多相关文章

  1. AndroidStudio修改虚拟机AVD路径
  2. Android安装常见的一些解决方法
  3. Android(安卓)Resources Overview —— Android(安卓)资源文件
  4. Android写SD卡的坑
  5. Android(安卓)APK文件拆解方法
  6. android 在线预览pdf文件(目前最全)
  7. android NDK学习篇4之two-libs——使用(单个动态库)来生成动态库
  8. Android(安卓)项目中文件夹作用(res文件夹详细介绍)
  9. andorid - NDK 编译mips-platform代码

随机推荐

  1. Android性能优化一些方法
  2. 看完《第一行代码》再看什么书可以进一步
  3. android — JNI注册方法说明
  4. Android(安卓)Input(一)-相关模块初始化
  5. Android(安卓)UI (include的使用)
  6. Android(安卓)- RecyclerView系列之小白
  7. android 利用FloatActionButton悬浮按钮
  8. 软键盘常用控制方法
  9. 如何发布Android应用程序?
  10. Android(安卓)从零开始打造一个 3D立体旋