【移动应用开发技术】怎么进行android中数据存储分析_第1页
【移动应用开发技术】怎么进行android中数据存储分析_第2页
【移动应用开发技术】怎么进行android中数据存储分析_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】怎么进行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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论