我的android学习经历30
数据存储的持久化技术
数据存储主要有五种方式:
(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的更多相关文章
- 我的android学习经历
我为什么选择android? 我基本上前一年的时间都是在学习java的语法和线程之类的,没有注意java的分类,所以到现在慢慢接触到深处的时候我了解到,java的优势主要在web,而我不是特别喜欢网页 ...
- 我的android学习经历36
最近把android的基础知识都学的差不多了,也写了许多demo,就想自己写一个app,可是写到后面的时候发现很混乱,所以还是得写一些文档,用xml语言写一下基础的类以及一些其他的东西.所以要想写一个 ...
- 我的android学习经历27
前几天忙着学校的互联网+项目比赛,没有时间学习android和发一些东西,主要是这两天太累了,我是项目组长,好多东西去弄,今天已经交稿去进行初赛. 马上收拾收拾心情,继续我的andorid菜鸟之路 加 ...
- 我的android学习经历23
学习fragment时遇到的问题 这几天学习fragment静态加载时遇到这样的问题: java.lang.RuntimeException: Unable to start activity Com ...
- 我的android学习经历9
给android的activity添加背景图片 1.你可以在网上下载android的图片,也可以制作自己的图片,图片的后缀为.png,也就是png格式的图片(注意图片的大小要适合你的手机屏幕或者AVD ...
- 我的android学习经历7
android签名后报错的问题 Duplicate id @+id/imageView, already defined earlier in this layout,android生成报错 这个是项 ...
- 我的android学习经历5
android在strings.xml文件中,写string对象时,如何加入空格 <string name="password">密 码:</string& ...
- 我的android学习经历40
为listview设置背景,并且不随拖动改变 <ListView android:id="@+id/list_view" android:layout_width=" ...
- 我的android学习经历39
关于像第一次进qq一样的那个渐变企鹅图的制作 渐变动画 package com.moonweather.app.activity; import com.moonweather.app.R; impo ...
随机推荐
- 解析xml文件
package com.ss1.xml; import java.io.File; import java.io.FileOutputStream; import java.io.IOExceptio ...
- 夺命雷公狗---Thinkphp----1之目录介绍
ThinkPHP框架 特点: 免费开源 敏捷开发(快速开发) 面向对象 MVC思想 yii,ci之类的框架都有这些特点.是06年到现在的一个老牌框架,现在还是个很不错的框架 可以在thinkphp的官 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON CheckDifference
zw版[转发·台湾nvp系列Delphi例程]HALCON CheckDifference unit Unit1;interfaceuses Windows, Messages, SysUtils, ...
- SQL删除重复数据方法
例如: id name value 1 a pp 2 a ...
- linux 程序或服务开机自启动
chkconfig --level 35 服务名 on或写启动脚本到/etc/rc.local/下
- Linux I2C工具查看配置I2C设备【转】
转自:http://blog.chinaunix.net/uid-26895763-id-3478882.html 在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值.幸好 ...
- Java生产者消费者模型
在Java中线程同步的经典案例,不同线程对同一个对象同时进行多线程操作,为了保持线程安全,数据结果要是我们期望的结果. 生产者-消费者模型可以很好的解释这个现象:对于公共数据data,初始值为0,多个 ...
- matlab读入矩阵数据
方法: 很简单,把矩阵数据存到excel里,然后存成cvs的格式,就是把每行数据之间用‘,’分隔:行与行之间用‘\n’保存. 举例: 假设cvs为test_nnfeature.txt,后缀可以改啦,只 ...
- ACM题目————士兵杀敌(四)
描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的 人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上, ...
- 磕磕碰碰的Chrome之plugin开发
前言 在Firefox下可用的npapi插件,在chrome下调用时遇到问题,于是尝试研究chrome下的ppapi插件,一路上真是磕磕碰碰,波折不断啊. 阶段一.复用npapi 尝试将npapi直接 ...