数据存储的持久化技术

数据存储主要有五种方式:

(1)文件存储或者SD卡

(2)SharedPreferences

(3)SQLite

(4)ContentProvider

(5)网络存储

下面简单介绍一下前三种存储

1.文件存储

比较适合存储一些简单的文本数据或者二进制数据,主要用到的方法是openFileOutput()和openFileInput()

两者返回的是FileOutputStream和FileInputStream;学过java 的I/O流的人这个都懂

然后对这两个流进行操作,比如将数据存储到文件中:

 FileOutputStream out=openFileOutput("data",Context.MODE_PRIVATE);  BufferWriter writer=new BufferWrite(newOutputStreamWriter(out) );  writer.write("nihao");

data为对应的文件名,nihao为写入的数据

读取的操作类似

2.SharedPreferences

存储的是键值对信息,支持对不同的数据类型进行存储。可以通过Context类的get.SharedPreferences(),Activity类的getPreferences()和PreferenceManager类中的getDefaultSharedPreferences()方法获得。只是获得的结果不太一样

得到SharedPreferences对象之后就可以开始向SharedPreferences文件中存储数据了,主要分为三步:

(1)使用SharedPreferences对象的edit()方得到SharedPreferences.Editor对象

(2)使用SharedPreferences.Editor对象添加数据,比如使用putString(),添加String字符串

(3)使用SharedPreferences.Editor对象的commit()方法提交数据,完成存储

读取SharedPreferences的数据更加简单,使用SharedPreferences的上面的三种方法得到你所想要的SharedPreferences文件对象,然后使用getXXX(此处的参数为健名)方法得到你所想要的数据,比如getString("key"),得到健名为key的字符串

3.SQLite

主要使用SQLiteOpenHelper

用一个类继承SQLiteOpenHelper类

上面只是简单介绍了一下三种存储方式,如果有什么问题请在评论区留言,谢谢

我的android学习经历30的更多相关文章

  1. 我的android学习经历

    我为什么选择android? 我基本上前一年的时间都是在学习java的语法和线程之类的,没有注意java的分类,所以到现在慢慢接触到深处的时候我了解到,java的优势主要在web,而我不是特别喜欢网页 ...

  2. 我的android学习经历36

    最近把android的基础知识都学的差不多了,也写了许多demo,就想自己写一个app,可是写到后面的时候发现很混乱,所以还是得写一些文档,用xml语言写一下基础的类以及一些其他的东西.所以要想写一个 ...

  3. 我的android学习经历27

    前几天忙着学校的互联网+项目比赛,没有时间学习android和发一些东西,主要是这两天太累了,我是项目组长,好多东西去弄,今天已经交稿去进行初赛. 马上收拾收拾心情,继续我的andorid菜鸟之路 加 ...

  4. 我的android学习经历23

    学习fragment时遇到的问题 这几天学习fragment静态加载时遇到这样的问题: java.lang.RuntimeException: Unable to start activity Com ...

  5. 我的android学习经历9

    给android的activity添加背景图片 1.你可以在网上下载android的图片,也可以制作自己的图片,图片的后缀为.png,也就是png格式的图片(注意图片的大小要适合你的手机屏幕或者AVD ...

  6. 我的android学习经历7

    android签名后报错的问题 Duplicate id @+id/imageView, already defined earlier in this layout,android生成报错 这个是项 ...

  7. 我的android学习经历5

    android在strings.xml文件中,写string对象时,如何加入空格 <string name="password">密    码:</string& ...

  8. 我的android学习经历40

    为listview设置背景,并且不随拖动改变 <ListView android:id="@+id/list_view" android:layout_width=" ...

  9. 我的android学习经历39

    关于像第一次进qq一样的那个渐变企鹅图的制作 渐变动画 package com.moonweather.app.activity; import com.moonweather.app.R; impo ...

随机推荐

  1. paper 59:招聘

     借Valse宝地发条招聘广告:D[腾讯优图]技术大咖招聘 欢迎各位技术大咖尤其应届优秀毕业生投递简历.简历投递:youtu@tencent.com简历投递,邮件标题请按照以下格式:[腾讯_上海_招聘 ...

  2. eclipse的debug模式启动缓慢

      这个问题可能是由于eclipse和服务器的交互而产生的,在以debug模式启动服务器时,发生了读取文件错误,eclipse自动设置了断点,导致服务器不能正常启动. 解决方法如下:以debug模式启 ...

  3. 夺命雷公狗---node.js---15之加密

    node其实也给我们留下了密码的加密发送,不过一般都是用cmd5加密其实也是够了,但是sha1加密也要提下: /** * Created by leigood on 2016/8/31. */ var ...

  4. 全志A20芯片用于启动的SD卡的布局

    起始 大小 内容 0 8KB 存放分区表等 8 24KB SPL loader 32 512KB u-boot 544 128KB environment 672 352KB 保留 1024 - 用于 ...

  5. z/os上的tar和gzip(2)

    前一篇文章写过了如何合成并压缩大批量文件,这篇文章解释一下如何在拿到压缩文件后如何解压并还原大批量文件.   解压缩的JCL很简单,如下所示,和压缩的JCL类似,只要把参数改成UNPACK,然后设置一 ...

  6. cvWaitKey();

    1.函数形式:int cvWaitKey(int delay=0 ): 函数功能:cvWaitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms. 参数:      delay——— ...

  7. OpenStack collectd的从零安装服务端

    安装collectd包操作同客户端相同,不在赘述 配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  8. 使用Node.js的socket.io模块开发实时web程序

    首发:个人博客,更新&纠错&回复 今天的思维漫游如下:从.net的windows程序开发,摸到nodejs的桌面程序开发,又熟悉了一下nodejs,对“异步”的理解有了上上周对操作系统 ...

  9. 使用 Delphi Xe 的 TDictionary

    原本一直使用 TList, 将定义的一个个 Record 保存在TList 里面, 为了能把某些对象管理起来, 例如一个类的 n 多实例,可以进行索引.查找.释放等 今天刚看到原来已经有了一个叫 TD ...

  10. 兼容IE, Chrome的ajax function

    gAjax.js var gAjax = (function () { /* paramObj:{ url: request url, method: GET or POST, encode: cha ...