下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么进行android中数据存储分析
这篇文章将为大家详细讲解有关怎么进行android中数据存储分析,文章内容质量较高,因此在下分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android中的数据存储主要有以下几种方式:1、使用SharedPreferences:该存储方式主要用于应用程序有少量的数据需要保存,而且这些数据的格式很简单。2、File存储:可以让我们轻松访问手机存储器上的文件(手机内存卡或者用户的SD卡)3、SQLite数据库:Android系统集成了一个轻量级的数据库4、网络:将数据保存在网络平台上进行存储下面我将带领大家使用它们:1、使用SharedPreferences,我们需要获取到SharedPreferences和SharedPreferences.Editor这两个重要的对象,然后便可以添加或者取出相应的数据:1)添加数据:
//获取SharedPreferences实例,表示该SharedPreferences只能被本应用程序进行读写
//MODE_WORLD_READABLE:只能被其他程序读,但不能写
//MODE_WORLD_WRITEABLE:能被其他应用程序进行读和写
SharedPreferences
preferences=getSharedPreferences("myFile",
MODE_PRIVATE);
SharedPreferences.Editor
editor=preferences.edit();//获取SharedPreferences.Editor对象
SimpleDateFormat
sdf=new
SimpleDateFormat("yyyy-MM-dd
hh:mm:ss");
//通过editor向SharedPreferences存入指定key数据
editor.putString("time",
sdf.format(new
Date()));
editor.putInt("random",
(int)(Math.random()*100));
mit();//提交所存入的数据2)取出相应的数据: SharedPreferences
preferences=getSharedPreferences("myFile",
MODE_PRIVATE);
//获取指定key的值,如果不存在返回默认值
String
time=preferences.getString("time",
null);
int
random=preferences.getInt("random",
0);
String
result=time==null?"你还未写入数据":"写入时间为:"+time+"\n上次生成的随机数为:"+random;
Toast.makeText(SharedPreferencesTestActivity.this,
result,
5000).show();以上代码都有注释,我相信大家很容易就能理解!2、File写入和读出android中我们可以在我们的手机自带的内存卡中或者用户插入的SD卡中进行文件的写入和读出/20140311220423734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSGFyZGVyWGlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast实质上就是建立一个输入输出流,然后在里面读写数据,就是java里面的IO操作!1)将数据保存在我们手机内置的存储空间 /**
*
该方法是将数据保存在我们手机内置的存储空间,主要是调用Context.openFileOutput(fileName,MODE)方法就可以得到相应的输出流
*
fileName:不能使用我们常用的分隔符("/"),例如:aaa/test.txt,我们只能使用test.txt
*
所保存的文件放在/data/data/包名/files/目录下,例如:/data/data/com.xin.activity/files/test.txt
*
MODE:有以下几种:
*
context.MODE_PRIVATE:当前应用程序下的私有数据,其他应用程序不能够进行读或者写访问,否则会出现permission
denni错误,
*
并且如果文件已经存在,重新写入的文件会覆盖掉以前文件当中的数据;
*
context.MODE_APPEND:当前应用程序下的私有数据,其他应用程序不能够进行读或者写访问,否则会出现permission
denni错误,
*
并且如果文件已经存在,重新写入的数据会追加到源文件的数据后面;
*
context.MODE_WORLD_READABLE:其他应用程序可以对该文件进行读的操作,不能进行写的操作,否则会出现permission
denni错误;
*
context.MODE_WORLD_WRITEABLE:其他应用程序可以对该文件进行写的操作,不能进行读的操作,否则会出现permission
denni错误;
*
如果要使其他应用程序既可以对文件进行读取,又可以对文件进行写入,可以使用
*
context.MODE_WORLD_READABLE+context.MODE_WORLD_WRITEABLE方式传入参数
*
保存后的文件中存在中文是不会乱码的
*
我们可以通过window-->android-->file
explorer查看系统中的文件
*
@param
fileName
*
@param
fileContent
*
@throws
Exception
*/
public
void
save(String
fileName,String
fileContent)throws
Exception{
FileOutputStream
fos=context.openFileOutput(fileName,
context.MODE_WORLD_WRITEABLE);
fos.write(fileContent.getBytes());
}2)手机内置的存储空间中读取数据 /**
*
从手机内置的存储空间中读取数据,主要是调用context.openFileInput(fileName)方法,传入参数文件名称
*
@return
*/
public
String
read(String
fileName)throws
Exception{
FileInputStream
fis=context.openFileInput(fileName);
byte[]
buffer=new
byte[1024];
int
len=0;
//保存在内存中,也可以使用下面的方式进行输出
ByteArrayOutputStream
baos=new
ByteArrayOutputStream();
//StringBuilder
sb=new
StringBuilder();
while((len=fis.read(buffer))!=-1){
baos.write(buffer,
0,
len);
//sb.append(new
String(buffer,0,len));
}
byte[]
b=baos.toByteArray();
return
new
String(b);
//return
sb.toString();
}3)保存文件到手机的外部存储设备SD卡中 /**
*
保存文件到手机的外部存储设备SD卡中
*
访问硬件设备,我们需要在AndroidMainifest.xml中配置相应的访问SD卡的权限
*<!--
在SD卡中创建与删除文件权限
-->
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!--
向SD卡中写入数据权限
-->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
注意由于android系统的版本不同,所以外部存储设备的根目录可能会不一样,例如2.1版/sdcard/,而2.2版本的/mnt/sdcard/
所以我们不能将其写死,使用Environment.getExternalStorageDirectory()即可得到不同版本的根目录,所以用这种方式
如果文件已经存在,内容会覆盖
*
@param
fileName
*
@param
fileContent
*
@throws
Exception
*/
public
void
saveToSDCard(String
fileName,String
fileContent)throws
Exception{
//Environment.getExternalStorageDirectory()>/sdcard
File
file=new
File(Environment.getExternalStorageDirectory(),fileName);
FileOutputStream
fos=new
FileOutputStream(file);
fos.write(fileContent.getBytes());
}4)将SD卡文件中的内容读取出来 /**
*
将SD卡文件中的内容读取出来
*
@param
fileName
*
@return
*
@throws
Exception
*/
public
String
readSDCard(String
fileName)throws
Exception{
File
file=new
File(Environment.getExternalStorageDirectory()+File.separator+fileName);
FileInputStream
fis=new
FileInputStream(file);
byte[]
buffer=new
byte[1024];
int
len=0;
ByteArrayOutputStream
baos=new
ByteArrayOutputStream();
while((len=fis.read(buffer))!=-1){
baos.write(buffer,
0,
len);
}
byte[]
b=baos.toByteArray();
return
new
String(b);
}
以上代码都有注释,我相信大家很容易理解!将文件从手机自带的内存卡中读写主要是用到android中提供的当前上下文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 节能高效果汁浓缩设备项目商业计划书及实施方案|瑞克咨询|2024年编|
- 家用水表项目市场研究报告及运营管理方案|瑞克咨询|2024年编制|
- 江苏省大丰市高考政治第一轮总复习 第3讲 生产、劳动与经营重难点梳理课后练习-人教高三全册政治试题
- 高考历史一轮复习 现代中国的科技文化与教育单元训练
- 2024年普通考研-园林植物与观赏园艺笔试参考题库含答案
- 2024年操作工技能考核考试-冷作工笔试参考题库含答案
- C++面向对象程序设计(第4版)-课件 CH8
- 2024年岗位知识竞赛-造价知识竞赛笔试参考题库含答案
- 2024年山西住院医师-山西住院医师口腔颌面外科笔试参考题库含答案
- 2024年安全知识安全生产知识竞赛-水泥安全生产知识笔试参考题库含答案
- GB/T 33009.1-2016工业自动化和控制系统网络安全集散控制系统(DCS)第1部分:防护要求
- 日益富强的中国
- GB/T 13470-2008通风机系统经济运行
- 《劳动法问题研究开题报告(含提纲)》
- 知行合一王阳明课件
- 儿童卡通版热烈庆祝中国海军建军节建军74周年
- 塔式起重机司机(建筑特殊工种)考试100题(有答案)
- 幼儿园“课程与教学游戏化”课件
- 2022年郑州高新投资控股集团有限公司招聘笔试试题及答案解析
- 机械设计一级减速器课程设计
- 企业投融资法律风险及对策课件
评论
0/150
提交评论