下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么进行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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级语文上册期末考试卷带答案
- 电动车火灾的预防与应对专题讲座课件
- 人教部编版四年级数学(上册)期末试题及答案(各版本)
- 部编版2022年二年级语文上册期末试卷及完整答案
- 2014年考研数学(二)真题
- 2022-2023年人教版八年级数学下册期中试卷及完整答案
- 2023年冀教版九年级生物上册期末考试卷(完整)
- 2024届吉林省白山市高三一模考试化学试题
- 宁夏屋面细部构造工程质量验收记录
- 2024年油气设备专用件项目经营分析报告
- 员工排班表(最新版)
- 医趋势:全球视野下的中国口腔产业暨中国口腔产业调研报告课件
- [计算机硬件及网络]运维服务方案标书模板
- T∕PIAC 00001-2020 医药行业合规管理规范
- 建设工程质量检测见证取样手册
- 国内首台套重大技术装备及关键部件产品认定申请报告书最新版
- 护理人员绩效考核评分细则
- 医学影像技术专业人才培养方案修改调研报告
- 设备标准化检修作业指导书编制及要求
- 《小学生日常行为规范》知识竞赛试题及答案
- 现浇钢筋混凝土排水沟施工方案
评论
0/150
提交评论