你的位置:SALT中文网 > Akash Network中文网 > Android文件读写的几种方式
Android文件读写的几种方式
- 发布日期:2025-01-03 17:39 点击次数:65 Android的App可以读写的位置为: 一、内置data目录下对应app名称的目录; 二、扩展SD卡(包括虚拟的内置SD卡和外置SD卡); 一、先说说内置data目录下文件的读写。 内置data目录即内部存储,指的是应用内部独有的存储,这部分存储的文件、数据,只能被应用自身访问到,其他应用都没有权限访问。 一般情况下,/data开头的路径都是内部存储。而一般应用所能够访问到的就是下面几个路径,称为应用内部私有存储。 应用内部私有存储: /data/user/0/<包名>/data/user/0/<包名>/files #存放文件数据/data/user/0/<包名>/databases #存放Sqlite的数据库文件/data/user/0/<包名>/shared_prefs #存放SharedPreference的数据/data/user/0/<包名>/cache #存放缓存文件 一旦App被卸载,系统将会移除内部存储中相关应用的数据。 方式1:内置API读写 这个位置的读写有提供一套单独的API来读写,无需申明特殊权限。 代码中有个openFileInput的方法,这个方法是Android内置的,需放在Activity中才能执行。 如下: 测试代码: 方式2:获取对应的data路径后,通过普通的方法读写data中的文件。 手动获取拼接data目录下文件路径,然后用通用的文件读写方式进行读写。 通用读写文件的辅助类,FileHelper.java 测试代码: 二、扩展SD卡文件读写 扩展SD卡文件即外部存储,指的是是公共的存储,这部分存储理论上是全局可见的,所有的应用都可以访问这部分数据,一般情况下,路径都是以/storage开头的,比如说/storage/emulated/0就是属于外部存储,这个路径的实际的挂载点是/data/media。又比如外置sdcard的路径为/storage/13FC-0F0B。 相比较内部存储一定会存在,外部存储可能是sdcard或者通过otg挂载的U盘形式,所以可能出现没有挂载的情况,所以所有的外部存储要在使用前通过下面的方式判断是否有被挂载。 访问外部存储需在AndroidManifest.xml文件中申明权限: 安卓6.0以后,谷歌要求危险权限必须动态获取,所以还要使用requestPermissions在运行时获取权限。 在Activity的onCreate事件中执行getPermission()方法,动态获取存储权限。 完成了上面的操作后,在代码: 中,root.listFiles()可能会返回null,还是无法读取或写入文件。 查了下资料,Android 10 或更高版本,还需要做一个配置:在AndroidManifest.xml中,还需增加:android:requestLegacyExternalStorage="true" 利用上面的FileHelper.java类,测试写入一个文件: 测试遍历根目录: 输出结果: 至此,完成了外部存储的读写功能。 参考资料: 1.Android中的内部存储和外部存储 2.android - Environment.getExternalStorageDirectory() deprecation alternatives - Stack Overflow 总结 到此这篇关于Android文件读写的几种方式的文章就介绍到这了,更多相关Android文件读写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关资讯