Android_数据存储的写法流程
2012-10-20 12:34
183 查看
数据存储访问:
1文件:
JavaSE IO技术
1)文件的保存:
①获取文件名称filename和文件内容filecontent
②为对应的文件创建FileoutputStream:
如果存储在手机存储上,用context.openFileInput(filename) 获得流;
如果存储在SDcard上,用new FileOutputStream(new File(...))
根据存储内容自定义类类型。;
③将文件内容写入输出流中 fo.write(....)
④关闭流
2)文件的读取:read
①获取文件的名称
②为对应的文件创建FileInputStream(方式同文件的保存)
③定义一个缓冲输出流ByteArrayOutputstream(内存),用于存放读出来的数据
④fi.read(buffer) os.write(....)
⑤将缓冲流数据转换后返回
示例://获取输入流
FileInputStream fi=context.openFileInput(filename);
Log.i("fi",fi.toString());
//字节数组输出流:缓存字节数据
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
//将数据全部读到字节数组输出流中
byte [] buffer=new byte[1024];
int len=0;
while((len=fi.read(buffer))!=-1){
outStream.write(buffer,0,len);
}
return new String(outStream.toByteArray());
2SharedPreferences(参数)
public class Calc extends Activity {
public static final String PREFS_NAME= "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings= getSharedPreferences(PREFS_NAME, 0);
boolean silent= settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings= getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor= settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
3 SQLite数据库
①继承SQLiteOpenHelper类,数据库生成、表的设计、库升级
②SQLiteDatabase:操作数据库,增删改查
数据库知识总结:
①创建数据库
SQLiteOpenHelper getReadableDatabase()或getWriteableDatabese()
②SQLiteOpenHelper自动创建数据库的原理实现
③数据库版本变化
④编写代码完成增删改查操作(两种:SQL语句和调用API)
⑤事务的实现
4内容提供者(Content provider)
可以把任意类型的数据对外共享。
示例:将上一个应用中的person表的数据对外共享。
1)Content Provider的特点
使用Content Provier对外共享数据的好处是:统一了数据的访问方式
2)继承ContentProvider ,并在manifest.xml中配置
<provider android:name=".PersonProvider" android:authorities="cn." />
3)uri代表要操作的数据,Uri主要包括两部分信息:
①需要操作的ContentProvider
②对ContentProvider中的什么数据进行操作
一个Uri的几部分组成:
Content://cn.zsw.provider.personprovider/person/10
Scheme:content://
主机名或者authority:cn.zsw.provider.personprovider
路径:/person/10
ID: 10
③内容提供者的数据可以来之数据库、文件、网络
3)继承ContentProvider 的PersonProvider类写法
5网络
①HttpURLConnection
②Socket
③流
(基本上都是java 网络和IO的知识)
1文件:
JavaSE IO技术
1)文件的保存:
①获取文件名称filename和文件内容filecontent
②为对应的文件创建FileoutputStream:
如果存储在手机存储上,用context.openFileInput(filename) 获得流;
如果存储在SDcard上,用new FileOutputStream(new File(...))
根据存储内容自定义类类型。;
③将文件内容写入输出流中 fo.write(....)
④关闭流
2)文件的读取:read
①获取文件的名称
②为对应的文件创建FileInputStream(方式同文件的保存)
③定义一个缓冲输出流ByteArrayOutputstream(内存),用于存放读出来的数据
④fi.read(buffer) os.write(....)
⑤将缓冲流数据转换后返回
示例://获取输入流
FileInputStream fi=context.openFileInput(filename);
Log.i("fi",fi.toString());
//字节数组输出流:缓存字节数据
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
//将数据全部读到字节数组输出流中
byte [] buffer=new byte[1024];
int len=0;
while((len=fi.read(buffer))!=-1){
outStream.write(buffer,0,len);
}
return new String(outStream.toByteArray());
2SharedPreferences(参数)
public class Calc extends Activity {
public static final String PREFS_NAME= "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings= getSharedPreferences(PREFS_NAME, 0);
boolean silent= settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings= getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor= settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
3 SQLite数据库
①继承SQLiteOpenHelper类,数据库生成、表的设计、库升级
②SQLiteDatabase:操作数据库,增删改查
数据库知识总结:
①创建数据库
SQLiteOpenHelper getReadableDatabase()或getWriteableDatabese()
②SQLiteOpenHelper自动创建数据库的原理实现
③数据库版本变化
④编写代码完成增删改查操作(两种:SQL语句和调用API)
⑤事务的实现
4内容提供者(Content provider)
可以把任意类型的数据对外共享。
示例:将上一个应用中的person表的数据对外共享。
1)Content Provider的特点
使用Content Provier对外共享数据的好处是:统一了数据的访问方式
2)继承ContentProvider ,并在manifest.xml中配置
<provider android:name=".PersonProvider" android:authorities="cn." />
3)uri代表要操作的数据,Uri主要包括两部分信息:
①需要操作的ContentProvider
②对ContentProvider中的什么数据进行操作
一个Uri的几部分组成:
Content://cn.zsw.provider.personprovider/person/10
Scheme:content://
主机名或者authority:cn.zsw.provider.personprovider
路径:/person/10
ID: 10
③内容提供者的数据可以来之数据库、文件、网络
3)继承ContentProvider 的PersonProvider类写法
5网络
①HttpURLConnection
②Socket
③流
(基本上都是java 网络和IO的知识)
相关文章推荐
- Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
- android数据存储
- Android中Activity执行restart过程中涉及到的四种数据存储恢复的方法(转)
- Android数据存储技术
- Android 数据存储与读取:SQLite
- android数据存储
- Android数据存储之SharedPreferences详解
- android中的数据存储
- android数据存储持久化操作
- Android中的数据存储
- android数据存储
- Android开发之数据存储全方案
- android数据存储-->SharedPerferences
- Android数据的四种存储方式
- Android应用之——不要将数据存储在Application类中
- Android基本数据存储方法
- android数据存储的选择
- Android-数据存储-SharedPreferences全局读写
- Android 关于数据存储的小案例——SharedPreferences存储方式
- Android的数据存储方式