android存储数据的几种方式比较

上一篇 / 下一篇  2014-03-22 13:50:03 / 个人分类:step by step android测试

android可以使用以下几种方式来存储数据:
1、Shared Preferences:存储私有数据,数据形式为键值对
2、Internal Storage:存储私有数据,数据存储在设备内存中
3、External Storage:存储公共数据,数据存储在外部的共享存储,比如:sdcard,不合适存储敏感数据
4、SQLite Database:存储私有数据,数据存储在Sqlite数据库中,用参数化查询增加一个数组存储查询参数
5、Network Connection:数据存储在服务器上.
几种存储方式比较
1、SharedPreferences
它一种轻量级的数据存储方式,学过Web开发的同学,可以想象它是一个小小的Cookie。它可以用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名 /shared_prefs/)自己定义的xml文件中。详情见:http://express.ruanko.com/ruanko-express_29/technologyexchange6.html
2、Internal Storage

机身内存读取主要用个两个类文件输入流(FileInputStream)和文件输出流(FileOutputStream):FileInputStream fileInput = this.openFileInput("test.txt") 第一个参数为 data/此程序包名/data/test.txt 文件下 的文件名 ;FileOutputStream fileOut = this.openFileOutput("test.txt",this.MODE_APPEND)第一个参数表示文件名 第二个参数表示打开的方式  。获取了文件输入输出流之后 其后的文件的读写和基本的IO操作一样。

3、External Storage

读写的基本流程就是: 

   3.1  通过Environment类的getExternalStorageState()方法来判断手机是否有SDcard:  Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

   3.2  最通过getExternalStorageDirectory()方法来获取文件目录:File file = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + "/test.txt"); 读写的文件都在sdcrad文件夹中 通过File Explorer可以导出来

   3.3 其后就和基本IO操作相同了

 以上两种存储方式,详情可以见http://blog.csdn.net/x605940745/article/details/12524539

4、SQLite Database

SQLite Database数据库 Android对数据库的支持很好,它本身集成了SQLite数据库,每个应用都可以方便的使用它,或者更确切的说,Android完全依赖于SQLite数据库,它所有的系统数据和用到的结构化数据都存储在数据库中。 它具有以下优点: a. 效率出众,这是无可否认的 b. 十分适合存储结构化数据 c. 方便在不同的Activity,甚至不同的应用之间传递数据 先前有一篇文章讲到了不同Activity和不同应用之间传递数据的麻烦,特别是对于大型数据结构,因为Activity虽是Java对象,但去无法像使用其他类对象那样去创建一个实例然后使用它,更无法给Activity加上Setters和Getters(虽然这样做了没有编译错误)。

详细的几种方式的比较也建议看看http://zhidao.baidu.com/question/582895023841920645.html这个文章,个人觉得不错。


TAG:

 

评分:0

我来说两句

Open Toolbar