我的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 ...
随机推荐
- Html基础知识讲解
Html基础知识讲解 <title>淄博汉企</title> </head> <body bgcolor="#66FFCC" topmar ...
- Javascript之回调函数(callback)
1.回调函数定义: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方 ...
- MapReduce之Writable相关类
当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化.Writable是Hadoop的序列化格式,Hadoop定义了这样一 ...
- Openstack的dashboard开发之【浏览器兼容性】
完全不支持浏览器: ie9(含)以下ie低版本浏览器及使用ie低版本浏览器的内核的扩展浏览器,如360安全浏览器(内核ie6) 原因:不支持vnc(需要浏览器支持才有vnc功能),jquery也不在支 ...
- sql基础查询
2.1 指定使用中的资料库 一个资料库伺服器可以建立许多需要的资料库,所以在你执行任何资料库的操作前,通常要先指定使用的资料库.下列是指定资料库的指令: 如果你使用「MySQL Workbench」这 ...
- USB 设备类协议入门【转】
本文转载自:http://www.cnblogs.com/xidongs/archive/2011/09/26/2191616.html 一.应用场合 USB HID类是比较大的一个类,HID类设备属 ...
- 161012、JAVA读写文件,如何避免中文乱码
1.JAVA读取文件,避免中文乱码. /** * 读取文件内容 * * @param filePathAndName * String 如 c:\\1.txt 绝对路径 * @return boole ...
- php用jquery-ajax上传多张图片限制图片大小
php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $fileInputName * @param number $siz ...
- 【翻译】了解ASP.NET MVC的HTML助手
原文:Understanding HTML Helpers in ASP.NET MVC 作 者:Shailendra Chauhan works as Software Analyst at rep ...
- Java中如何在另一个类里面使用运行类中的对象,举例说明了一下。
package 计时器; import java.util.Timer; import java.util.TimerTask; /* * 主要是想在另一个类里面,使用该类的对象,如何使用呢?如何传递 ...