概要:
- Internal Storage: 内置sdcard存储
- External Storage:外置sdcard存储
- Shared Preferences:偏好设置存储
- SQLite Databases:数据库存储
- network Connection:网络存储
External Storage:外置sdcard存储
//将资源写入手机内置sdcard并读出文件
public void onClick(View v) throws Exception{
//openFileOutput方法 创建文件并设置模式 写入
FileOutputStream out=openFileOutput("a.txt",Context.MODE_PRIVATE);
out.write("内置sdcard".getBytes());
out.close();
byte[] buf= new byte[10];
FileInputStream in =openFileInput("a.txt");
in.read(buf);
in.close();
Toast.makeText(this, new String(buf),0).show();
}
//将资源写入手机内置sdcard cache目录并读出文件 //读取cache目录并不能用openFileOutput方法
public void onClick02(View v) throws Exception{
//拿到缓存目录 //data/data/项目包/cache
File f= getCacheDir();
OutputStream out = new FileOutputStream(new File(f,"a.txt"));
out.write("内置sdcard cache目录".getBytes());
out.close();
byte[] buf= new byte[20];
FileInputStream in=new FileInputStream(new File(f,"a.txt"));
in.read(buf);
in.close();
Toast.makeText(this, new String(buf),0).show();
}
Shared Preferences:偏好设置存储
//偏好设置存储 存储到内置sdcard data/data/shard_prefs目录 为xml文件
public void onClick03(View v){
//获得SharedPreference对象
SharedPreferences sp=getSharedPreferences("s1", Context.MODE_PRIVATE);
//获得Editer对象
Editor et = sp.edit();
//将数据存储到Editor对象
et.putString("phone","139");
//将Editor对象的数据写入到文件
et.commit();
}
//从偏好设置文件xml中读取数据
public void onClick04(View v){
//获得SharedPreference对象
SharedPreferences sp=getSharedPreferences("s1", Context.MODE_PRIVATE);
//读取数据 根据key 查找值 如果没找到取默认值 参数指定默认值
String phone= sp.getString("phone", "null");
Toast.makeText(this,"phone="+phone,0).show();
}
SQLite Databases:数据库存储
什么是SQL?
- SQLite 是一个开源,轻量级关系型数据库系统,底层使用c/c++实现。
- SQLite 一般应用于便携式设备,无需启动服务。
- Adnroid 内置了SQLite 数据库,可以存储联系人信息,媒体库信息,备忘录信息。。。。。
SQL语句基本语法:
//打开或者创建一个数据库 参数:数据库名 私有模式
SQLiteDatabase sdb = openOrCreateDatabase("contact.db", Context.MODE_PRIVATE, null);
//创建表
private void creatTable(){
//sql语句语法:create table 表名(字段名 字段类型 约束) DDL 数据定义语言
String sql="create table if not exists contact(_id integer primary key,phone text not null,name text)";
//执行SQL语句
sdb.execSQL(sql);
}
//插入语句
private void insert(){
String sql="insert into contact values(2,'139','linqiang')";
sdb.execSQL(sql);
}
//查询语句
private void search(){
String sql="select * from contact where _id=? and phone =?";
Cursor c=sdb.rawQuery(sql,new String[]{"2","137"});
//处理数据
while(c.moveToNext()){
int a= c.getInt(c.getColumnIndex("_id"));
String s1= c.getString(1);
String s2= c.getString(2);
Log.i("TAG","查询结果:"+a+s1+s2 );
}
c.close();
}
//修改语句
private void update(){
String sql="update contact set phone=? where _id=?";
sdb.execSQL(sql, new Object[]{"137","2"});
}
//删除语句
private void delete(){
String sql="delete from contact where _id=?";
sdb.execSQL(sql,new Object[]{2});
}
}