Android的数据存储
先说下,Preference,File, DataBase这三种方式分别对应的目录是/data/data/Package Name/Shared_Pref, /data/data/Package Name/files, /data/data/Package Name/database 。
在Android中通常使用File存储方式是用Context.openFileOutput(String fileName, int mode)和Context.openFileInput(String fileName)。
Context.openFileOutput(String fileName, int mode)生成的文件自动存储在/data/data/Package Name/files目录下,其全路径是/data/data/Package Name/files/fileName 。注意下,这里的参数fileName不可以包含路径分割符(如"/")。
通常来说,这种方式生成的文件只能在这个apk内访问。但这个结论是指使用Context.openFileInput(String fileName)的方式。使用这种方式,每个apk只可以访问自己的/data/data/Package Name/files目录下的文件,原因很简单,参数fileName中不可以包含路径分割符,Android会自动在/data/data/Package Name/files目录下寻找文件名为fileName的文件。
但是如果你直接使用这个File,那么这个File在其它apk中也是可以访问的,不过要注意在之前调用Context.openFileOutput(String file, int mode)时不要使用缺省的mode:MODE_PRIVATE ,而应该使用MODE_WORLD_READABLE 。使用缺省mode生成的文件的权限是“660”(也就是rw-rw----),而使用后者生成文件的权限是允许运行别的apk访问的。代码如下:
File file = new File("/data/data/Package Name/files/fileName");
另外还有一个方法可以改变这个生成文件的权限。可以直接在Java代码中执行Linux命令,毕竟Android归根到底也是Linux .代码如下:
// Process process = Runtime.getProcess().exec("chmod 666 /data/data/Package Name/files/fileName");
//process.waitFor();
Process process = Runtime.getRuntime().exec ("ls");
BufferedReader ins = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while((line = ins.readLine())!=null)
{
Toast.makeText(this, line, Toast.LENGTH_LONG).show();
}
Android的数据存储相关推荐
- android SharedPreferences数据存储
android SharedPreferences数据存储 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存 ...
- 005 Android之数据存储
文章目录 Android文件系统 Android文件的访问权限 文件访问权限实例 数据存储方式 内部存储 内部存储实例 外部存储 Shared Preferences Shared Preferenc ...
- android 储存方案,Android本地数据存储方案(一)
Android系列的博客主要是记录和总结自己在平时学习之中遇到的问题,方便日后用到时查看,同时也希望对读者有所帮助.不足之处,欢迎指正~ 在说到Android数据存储之前,先提一下数据持久化,所谓数据 ...
- Android的数据存储之一------SharedPreferences
下面将介绍下Android的数据存储,Android提供了5种方式存储数据: 1.SharedPreferences存储数据; 2.文件存储数据: 3.SQLite数据库存储数据: 4.使用Conte ...
- android常用的存储方式,Android 常见数据存储方式
Android 常见数据存储方式有以下三种:1.使用SharedPreferences存储数据:其本质就是一个xml文件,可以保存字符串.布尔值.基础数据.集合等数据.常用于存储较简单的参数设置. 2 ...
- Android之数据存储-刘志远-专题视频课程
Android之数据存储-17742人已学习 课程介绍 本课程介绍了Android中几种数据存储方式,让大家对Android中的数据存储一个系统的认识 课程收益 本课程介绍了A ...
- android app数据存储,基于Android开发的APP数据存储研究
谢原武+龙文 摘要: 作为一个完整的应用程序,数据存储操作是必不可少的.Android系统一共提供了四种数据存储方式分别为File文件存储.Shared Preferences存储.ContentPr ...
- Android常用数据存储之SharedPreferences存储和读取用法分享
一:Android常用数据存储,一共有五种方式,分别是 1.SharedPreferences储存数据, 2.文件存储 3.SQLite数据存储 4.ContentProvider储存数据 5.网络存 ...
- Android的数据存储和IO - 自动朗读(TTS)
Android的数据存储和IO - 自动朗读(TTS) 自动朗读又是Android提供的另一种另类的IO,蛮不错的哦,支持对指定文本内容进朗读,学习完这个内容我立马就让它朗读:wwj is a goo ...
- 【Android】数据存储,文件,数据库
Android中数据存储 一.在内部存储读写文件 1.文件io读写 写文件 //写入数据 private fun saveFile() {//将文件写入内部存储空间时,只能在本应用的目录中写入,不能写 ...
最新文章
- 【组合数学】递推方程 ( 递推方程内容概要 | 递推方程定义 | 递推方程示例说明 | 斐波那契数列 )
- 【教程】Linux下MySQL 8.0安装配置
- 全球及中国电池行业需求前景与十四五投资规划分析报告2022-2028年版
- http压力测试工具
- python求最小公倍数_python求最大公约数和最小公倍数的简单方法
- react(93)--成功置空
- ES6解决了什么问题
- Android--Pin流程,飞行模式相关流程总结【工作日记一】
- 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击 1
- Java —— 正则表达式
- 为什么都建议学java而不是python-现在学Python还是Java好呢?
- windows下 Mysql 错误1067 Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
- matlab定积分如何使用,如何用matlab计算定积分.pdf
- 如何模拟地震、噪音、颠簸路面激励下的不确定性振动行为?
- iOS Socket 客户端 基本使用
- python 实现 责任链模式
- 根据ip地址定位城市信息
- 非因解读 | 单细胞空间蛋白质组分析技术揭示乳腺癌循环肿瘤细胞(CTC)与肿瘤异质性及肿瘤免疫的关系
- 放弃有道词典和有道云笔记
- LAMP服务器环境搭建及工程部署
热门文章
- 基于nginx和uWSGI在Ubuntu系统上部署Django项目
- Codeforces Round #354 (Div. 2)-A
- 转: C语言中位运算符异或“∧”的作用
- springmvc学习笔记--Interceptor机制和实践
- mysql中关于count(*) count(id)的误区
- 使用ImageMagick 的提示与技巧
- Windows7操作系统任务栏的相关技巧
- jQuery Form Plugin (jquery表单插件)
- 实现对HDFS增删改查CRUD等操作
- Java 性能优化实战记录(1)---定位并分析耗cpu最多的线程