Android基础之数据存储(等待更新…)
1数据存储方式:
文件存储:最为常用,与Java中的I/O完全一样,可存储文本、图片、音频等。
SharedPreferences:存储一些简单配置,xml格式存储。
SQLite数据库:系统自带轻量级数据库,支持SQL。
ContentProvider:应用程序之间的数据交换。
网络存储:将数据存储在服务器上。
1.1文件存储(分为内部存储、外部存储两种。)
- 内部存储:文件存储在设备内部,为应用程序私有,当卸载应用程序时随之删除,其他程序访问此文件时需要提供权限。
将数据存储到指定文件:其中:
#1 FileOutputStream fos=openFileOutput(String name, int mode);
是文件名,
name
是文件操作模式。
mode
的4种取值模式:
mode
只能被当前应用程序读写、
MODE_PRIVATE
文件内容可以追加、
MODE_APPEND
可被其他应用程序读、
MODE_wORLD_READABLE
可被其他应用程序写。
MODE_WORLD_WRITEABLE
#2 fos.write(content.getBytes());
读取指定文件的数据:
#3 fos.close();
其中:
#1 FileInpuStream fis=openFileInput(String name);
是文件名。
name
其中
#2 byte[] buffer=new byte[fis.available()];
用于获取文件长度。
fis.available()
#3 fis.read(buffer);
#4 content=new String(buffer);
#5 fis.close();
- 外部存储:文件存储在SD或者内嵌存储卡中,为其他应用程序共享,并且可以被浏览、修改、删除。存储方式不安全。
#1 获取外部存储设备的状态
String state=Environment.getExternalStorageState();
#2 判断是否可用,若可用则读取数据
if (state.equals(Environment.MEDIA_MOUNTED)){
File SDPath=Environment.getExternalStorageDirectory();//获取SD卡目录
File file=new File(SDPath,'data.txt');
//存储数据
FileOutputStream fos;
String data="Hello World";
try{
fos=new FileOutputStream(file);
fos.write(data.getBytes());
fos.close();
}catch(Exception e){
e.printStackTrace();
}
//读取数据
FileInputStream fis;
try{
fis=new FileInputStream(file);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
String data=br.readLine();
}catch (Exception e){
e.printStackTrance();
}
}
由于操作SD卡中的数据这一行为需要符合系统安全性,因此需要在清单文件中添加SD卡读写权限。
android.permission.WRITE_EXTERNAL_STORAGE
、
android.permission.READ_EXTERNAL_STORAGE