Android数据持久化的方式总结

一、SharedPreferences

  

  以.xml格式的文件进行存储,存储位置在data/data/package/shared_prefs/目录下。

  

  存储步骤:

  

  1、创建文件:getSharedPreferences(name, mode);name为文件名,如果有此文件存在,不再创建,直接用此文件。

  

  2、获取文件编辑器:SharedPreferences.Editor se=preferences.edit();

  

  3、存入数据:se.putString("et_content", et.getText().toString());调用编辑器的putXxx方法,可存入不同类型的数据,共有putInt(key,

  

  value)、putLong(key, value)、putFloat(key, value)、putBoolean(key, value)、putString(key, value)和putStringSet(arg0, arg1)六个方

  

  法。

  

  4、提交改变:se.commit();

  

  例如:getSharedPreferences("dcy", Context.MODE_PRIVATE).edit().putString("username", et_username.getText().toString().trim

  

  ()).commit();

  

  取出数据:getSharedPreferences("gxx", Context.MODE_PRIVATE).getString("et_content", "");

  

  二、内部存储(存储到手机内部存储空间)

  

  存储目录为data/data/package/files/

  

  存储步骤:

  

  1、打开存储文件:openFileOutput(name, mode);name不限制类型,可自行指定

  

  2、写入数据:fos.write(buffer);

  

  3、刷新关闭流:fos.flush();fos.close();

  

  例如:

  

  FileOutputStream fos=openFileOutput("dcy.txt", Context.MODE_PRIVATE);

  

  fos.write(text.getText().toString().getBytes());

  

  fos.flush();

  

  fos.close();

  

  取出数据:openFileInput("dcy.txt");只需要指定读取数据的文件名即可。

  

  getFilesDir();获得的是绝对路径/data/data/com.example.studentlogin/files

  

  getCacheDir();获得的是绝对路径/data/data/com.example.studentlogin/cache

  

  三、sdcard存储

  

  将数据存储到手机的sdcard上面,需要声明一个外部存储可写的权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  

  如果要判断sdcard是否挂载还需要一个权限:<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

  

  存储过程:

  

  1、获取sdcard当前状态:Environment.getExternalStorageState();返回一个字符串常量,例如Environment.MEDIA_MOUNTED(sdcard已挂载)

  

  2、判断sdcard是否挂载:Environment.MEDIA_MOUNTED.equals(state);sdcard挂载则执行下面的存储操作

  

  3、指定目录:File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cat.mp3");

  

  4、写入数据:new FileOutputStream(file).writer();

  

  取出数据用FileInputStream即可。

时间: 2024-11-06 03:56:00

Android数据持久化的方式总结的相关文章

Android数据持久化存储

Android数据持久化存储共有四种方式,分别是文件存储.SharedPreferences.Sqlite数据库和ContentProvider.在本篇幅中只介绍前面三种存储方式,因为ContentProvider属于android四大组件之一,所以它的数据存储方式在介绍四大组件的时候说明. 1.文件存储 文件存储不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中的,因而它比较适合用于存储一些简单的文本数据或二进制数据. 文件存储有两种方式,一是存储到手机内存中(memor

Android数据持久化技术

每一款Android应用除了界面外,需要与用户进行交互,网络数据获取等功能.因此,数据的存储对应用来说也举足轻重. Android数据存储有下面五种方式: 1> 文件存储 2> SharedPreferences存储 3> SQLite 4> ContentProvider 5> 网络存储 在这里,主要介绍前三种数据存储,即持久化存储. 1> 文件存储 将数据存储到文件中: public void save(){ FileOutputStream out = null;

利用GCD进行数据持久化的方式(二)

如果各位看官看过我上一篇利用GCD持久化方式(一)那我在这里对一些相同的参数就不在做过多的介绍了,还请各位见谅. 还是按照惯例,先搞一个路径用来存储数据 NSString *path = [NSString stringWithFormat:@"%@/Documents/myData.text",NSHomeDirectory()]; NSLog(@" %@",path); 这里我们创建一条普通的异步线程就可以 dispatch_queue_t queue = di

标准架构~业务层到底是否应该关注数据持久化的方式

业务层,你不能知道数据库的实现细节 这个话题也是网上谈论的非常多的,你的业务层是否会包含你的数据层的相关架构技术,如,你的数据层的持久化通过EF来实现,那么你的业务层是否也应该引入EntityFrameworks程序集?占占还是会告诉你,不应该,因为这样会使你的业务不再是纯粹的业务,它会依赖由你的数据层的持久化实现的技术,这是不对的,我们需要把业务层解藕出来,只有这样,你的数据层在进行技术切换时,业务层才不会受到影响,当然,这是理所当然的,如果你的数据库换技术了,还会影响到你的业务层,那么,你这

数据持久化的方式

Plist 文件:plist 文件当修改时会将原来的值给重新覆盖掉. NSUserDefaults: 存储一个用户的设置信息,比如记录用户是否是第一次启动程序.存放在 Library 下的 preferences 文件夹下. 文件读写: 文件读写是将数据保存成一个文件,存储在本地,但是只针对于四种数据类型,NSData,NSString,NSArray,NSDictionary. 归档和反归档: 可以对自定义的类来进行数据持久化存储. 数据库: 数据库来实现数据持久化存储的便利性在于可以方便的进

饿了么开源项目:便捷高效的Android数据持久化存储框架

版权所有.所有权利保留. 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/51436972 Android应用开发时经常要对许多数据进行持久化存储,便于以后访问. 对于int.double.boolean这些基本数据,可以使用SharedPreference.对于一些对象,往SharedPreference里存储的时候需要使用序列化技术.如果对象很大,或者碰到列表.数组等结构,就必须使用数据库.而使用数据库比较麻烦,成

Android数据的存储方式简介

作为一个完整的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于"data/data/程序包名"目录下,所以要实现数据共享,正确方式是使用Content Provider. SQLite SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式.Android为此数据库

redis 数据持久化 aof方式

打开redis的运行目录,选择数据库2(select 2,是空集)可以看到dump.rdb的上次保存时间是今天中午1:58 添加2条数据: 再查看dump.rdb,保存时间是现在(说明从1:58到现在没有修改过key) 在dump.rdb中可以看到刚才保存进入的数据,但是当添加第三个数据addr3时,dump.rdb的修改时间是不会变的,没有达到快照备份的频率. 现在选择标号为3数据库,添加2条数据,此时还未达到快照持久化的频率,所以默认dump.rdb中还没有这两个数据,dump.rdb的修改

Android数据持久化储存4

1.对输入的数据进行判空 不常用写法 //合法性检查,这里只判空 if(accountText.length() == 0) { Toast.makeText(this,"账号不可以为空",Toast.LENGTH_SHORT).show(); return; } if(passwordText.length() == 0) { Toast.makeText(this,"密码不可以为空",Toast.LENGTH_SHORT).show(); return; } 常