我的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 ...
随机推荐
- 关于header跳转之后的乱码问题
关于header跳转之后的乱码问题 http://www.360doc.com/content/11/0603/19/7052474_121495648.shtml 问题:不同网站的跳转出现乱码,不同 ...
- java 中多线程和锁的使用
关键词: implements 实现 Runnable 类 run() 方法 注意点 : 创建类的实例 InterfaceController inter=new InterfaceContro ...
- ssh & display
在Windows下用ssh连接服务器的话putty是一个小巧而且实用的工具,如果想要图形界面,可以使用X工具配合putty. 或者直接使用xmanager enterprise,非 常方便. 如果在U ...
- 【py网页】urllib.urlretrieve远程下载
下面我们再来看看 urllib 模块提供的 urlretrieve() 函数.urlretrieve() 方法直接将远程数据下载到本地. 1 >>> help(urllib.urlr ...
- Windows7(x64)下Oracle10g安装
安装环境:Windows7 (64位版本) + Oracle10g 问题描述1:无法启动安装程序,程序提示“程序异常终止.发生内部错误....” 解决过程:按网上说法加6.1版本参数,按xp兼容模式启 ...
- linux 安装
分区:/boot swap /这三个顺序分区 mkdir -p|-m cat >> 123.txt<<EOF 123 345 EOF 0.1和2分别表示标准输入.标准输出和标准 ...
- 前端不为人知的一面–前端冷知识集锦 原文地址(http://web.jobbole.com/83473/);
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
- iOS 学习笔记 九 (2015.04.02)IOS8中使用UIAlertController创建警告窗口
1.IOS8中使用UIAlertController创建警告窗口 #pragma mark - 只能在IOS8中使用的,警告窗口- (void)showOkayCancelAlert{ NSSt ...
- Backup: Flow Control in Perl6
Control Flow 注意空格,注意空格,注意空格 和 Perl5不同的是,这些结构都可以返回值,而且即使倒置结构也可以用 block 了 block 可以有逗号 with without orw ...
- 创建sh文件
创建sh文件 #/bin/bash v_file=$ v_type=$ v_desc=$ touch $v_file echo '#================================== ...