第六章 数据存储
2015-06-07 14:30
393 查看
1.文件 一般不用。
2.数据库 几百k 存储联系人信息。
3.sp 键值对 存储一些密码,地址之类的。
4.sd卡。
1.文件
数据从内存中写入硬盘。先缓冲下 ,在转化 ,再输出。
FileOutputStream out=openFileOutput("data",Context.MODE.PRIVATE); 得到字节流 文件对象。
OutputStreamWriter outsw=new OutputStreamWriter(out); 转换流 。
BufferedWriter bufferw=new BufferedWriter(outsw); 带有缓冲区的字符输出流
bufferw.write("data to save content"); 将文本写入文件中。
从文件中读取数据 放入sb中。
StringBuilder sb=new StringBuilder();
FileInputStream in=openFileInput("data");
InputStreamReader reader=new InputStreamReader(in); 转换流
String line=BufferedReader.readerline(); 一行一行读取
while(line!=null)
{
sb.append(line);
}
if(!TextUtils.isEmpty(str))
{
edit.setText(str);
edit.setSelection(str.length());//光标移动到文本的末尾
}
。
数据从内存中写入硬盘时,顺序是,缓冲流->转化流->文件流;
而缓冲流是字符流,本例中的文件流out是字节流,所以是字符流到字节流的桥梁;
OutputStreamWriter/InputStreamReader 是转换流
字符流与字节流的判断标准:根据名字的最后个单词。如果是Writer/Reader则是字符流,
若是InputStream/OutputStream则是字节流。因此,转换流本身是字符流。
BufferedReader,为字符输入流增加了缓冲区的功能
FileOutputStream,是用来操作文件的字节输出流,File代表操作的目的,OutputStream代表这是个输出的字节流
缓冲流是字符流
3.sp中
4.数据库
SQLiteOpenHelper
帮助类,借助这个类就可以非常简单地对数据库进行创建和升级
命令行:sqlite3
SQLite
不像其他的数据库拥有众多繁杂的数据类型,它的数据类型很简单,integer
表示整型,real
表示浮点型,text
表示文本类型,blob
表示二进制类型
create table Book(
id integer primary key autoincrement,
author text,
price real,
pages integer,
name text
)
//SQLiteOpenHelper的子类 覆盖父类的方法,只会执行一次
public void onCreate(SQLiteDatabase db){
db.execSQL(str2);
db.execSQL(str);
}
public void onUpgrade(SQLitedatabase db,int oldVersion,int newVersion)
{
db.execSQL("drop table if exists Book");
db.execSQL("drop table if exists Category");
onCreat(db);//再这里重新调用onCreate方法 在实例化的时候更改newVersion
}
构建出 SQLiteOpenHelper 的实例之后,再调用它的 getReadableDatabase()或 getWritableDatabase()方 法就能够创建数据库
getReadableDatabase()和 getWritableDatabase()。
这两个方法都可以创建或打开一个现有的数据库(如果数据库已存在 则直接打开,否则创建一个新的数据库)
对数据库的操作就是crud。 create retrieve update delete
添加 insert select update delete
db.insert("book",null,contentValues);
db.update("book",contentValues,"name=?",new String[]{"the davinci code"});
?是一个占位符,可以通过第四个参数
2.数据库 几百k 存储联系人信息。
3.sp 键值对 存储一些密码,地址之类的。
4.sd卡。
1.文件
数据从内存中写入硬盘。先缓冲下 ,在转化 ,再输出。
FileOutputStream out=openFileOutput("data",Context.MODE.PRIVATE); 得到字节流 文件对象。
OutputStreamWriter outsw=new OutputStreamWriter(out); 转换流 。
BufferedWriter bufferw=new BufferedWriter(outsw); 带有缓冲区的字符输出流
bufferw.write("data to save content"); 将文本写入文件中。
从文件中读取数据 放入sb中。
StringBuilder sb=new StringBuilder();
FileInputStream in=openFileInput("data");
InputStreamReader reader=new InputStreamReader(in); 转换流
String line=BufferedReader.readerline(); 一行一行读取
while(line!=null)
{
sb.append(line);
}
if(!TextUtils.isEmpty(str))
{
edit.setText(str);
edit.setSelection(str.length());//光标移动到文本的末尾
}
。
数据从内存中写入硬盘时,顺序是,缓冲流->转化流->文件流;
而缓冲流是字符流,本例中的文件流out是字节流,所以是字符流到字节流的桥梁;
OutputStreamWriter/InputStreamReader 是转换流
字符流与字节流的判断标准:根据名字的最后个单词。如果是Writer/Reader则是字符流,
若是InputStream/OutputStream则是字节流。因此,转换流本身是字符流。
BufferedReader,为字符输入流增加了缓冲区的功能
FileOutputStream,是用来操作文件的字节输出流,File代表操作的目的,OutputStream代表这是个输出的字节流
缓冲流是字符流
3.sp中
4.数据库
SQLiteOpenHelper
帮助类,借助这个类就可以非常简单地对数据库进行创建和升级
命令行:sqlite3
SQLite
不像其他的数据库拥有众多繁杂的数据类型,它的数据类型很简单,integer
表示整型,real
表示浮点型,text
表示文本类型,blob
表示二进制类型
create table Book(
id integer primary key autoincrement,
author text,
price real,
pages integer,
name text
)
//SQLiteOpenHelper的子类 覆盖父类的方法,只会执行一次
public void onCreate(SQLiteDatabase db){
db.execSQL(str2);
db.execSQL(str);
}
public void onUpgrade(SQLitedatabase db,int oldVersion,int newVersion)
{
db.execSQL("drop table if exists Book");
db.execSQL("drop table if exists Category");
onCreat(db);//再这里重新调用onCreate方法 在实例化的时候更改newVersion
}
构建出 SQLiteOpenHelper 的实例之后,再调用它的 getReadableDatabase()或 getWritableDatabase()方 法就能够创建数据库
getReadableDatabase()和 getWritableDatabase()。
这两个方法都可以创建或打开一个现有的数据库(如果数据库已存在 则直接打开,否则创建一个新的数据库)
对数据库的操作就是crud。 create retrieve update delete
添加 insert select update delete
db.insert("book",null,contentValues);
db.update("book",contentValues,"name=?",new String[]{"the davinci code"});
?是一个占位符,可以通过第四个参数
相关文章推荐
- 百度地图 Android开发
- 如何有效防范SQL注入
- git工作流
- 网站优化:测试网站速度的8款免费工具推荐
- 【C++】String类中的运算符重载
- 【leetcode】 Balanced Binary Tree
- Java 爬虫
- 对编程语言的认识
- 初学后台框架总结篇一——学习过程
- git 分之合并和冲突解决
- js内置函数的使用
- android shape
- php的var关键字
- python的zip函数
- 2015第23周日
- Python定制类
- java输入输出高速
- (1)android底层如何使用上层传递的bitmap对象
- kali linux 的初始化及数据库postgresql的初始化并链接
- bzoj 4127: Abs 树链剖分