Android基础之数据存储

Android基础之数据存储(等待更新…)

1数据存储方式:

文件存储:最为常用,与Java中的I/O完全一样,可存储文本、图片、音频等。
SharedPreferences:存储一些简单配置,xml格式存储。
SQLite数据库:系统自带轻量级数据库,支持SQL。
ContentProvider:应用程序之间的数据交换。
网络存储:将数据存储在服务器上。

1.1文件存储(分为内部存储外部存储两种。)

  • 内部存储:文件存储在设备内部,为应用程序私有,当卸载应用程序时随之删除,其他程序访问此文件时需要提供权限。

将数据存储到指定文件
#1 FileOutputStream fos=openFileOutput(String name, int mode);
其中:name 是文件名,mode是文件操作模式。
mode的4种取值模式: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_STORAGEandroid.permission.READ_EXTERNAL_STORAGE


版权声明:本文为weixin_38649966原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。