android的SP存储和SD卡存储

在android中有着很多的存储方式,例如数据库存储,SD卡存储以及SharedPreferences(以下简称SP)等,下面我们来主要的讲解一下SP以及SD卡存储。
首先是SP,SP存储是一个采用Key/Value(键值对)进行存储轻量级数据的一个接口。
SP存储的存储方式分为四种权限,分别可以给SP存储的数据进行不同的调用。
第一种:Context.MODE_PRIVATE,这种存储方式是Android的默认存储方式,代表存入的数据是私有的,只能该应用程序来调用。
第二种:Context.MODE_APPEND,这种存储方式是在存入数据时先检查一下文件是否存在,如果存在,就直接往里存入数据,否则就新建文件。
第三种:Context.MODE_WORLD_READABLE,这种存储方式则是允许其他应用程序来读取该文件,所以会导致文件泄露,所以很少用到。
第四种:Context.MODE_WORLD_WRITEABLE,这种方式则是允许其他程序将内容写到该文件内,所以也很少用到。
讲完了SP的四种存储方式,下面让我们来具体看一下SP存储在Android的具体存储方式:
首先,在Activity中获取一个SP对象
在这里插入图片描述
这个对象共有两个参数,第一个是你的文件名,第二个参数则是上面我们说到的四种存储方式其中的一种。
之后,如果要对这个文件进行读取则可以直接用获取到的对象进行读取
android的SP存储和SD卡存储_第1张图片
读取数据可以根据数据的不同类型来进行不同的读取方式,同样会有两个参数,我们第一个参数是要读取得Key值,第二个参数是如果没有读取到的默认值。
如果我们要写入数据的话,那么则需要获取到一个Editor对象,通过这个对象来进行存入数据
android的SP存储和SD卡存储_第2张图片
存入数据则是一样的操作,通过数据的不同类型来选择不同的方法进行存储,第一个参数是Key值,第二个参数则是我们要存入的数据,在将我们需要存入的数据写好了之后,我们通过提交来将数据存入文件
在这里插入图片描述
这样,我们的数据就通过SP存储的方式放入了文件内。这就是SP存储的具体方式。
通过SP存储的方式大家会发现一个问题,在存入小数据是,使用SP方式会很方便,但是在存入大量数据是,我们就会发现将数据一个一个的存入需要很多行代码,这样会浪费大量的时间,所以,Android也给大家提供了另外的方法,那就是SD卡存储方式,和SP存储的区别是,可以快速的存入大量的数据,节约了很多的代码,也可以将一些图片,视频类型的文件给存储起来。
下面我们就来看一下SD卡存储方式。
SD卡存储方式其实很多人并陌生,就是IO流,通过流的方式将数据写入到文件内,路径是我们的SD卡内
FileInputStream fileInputStream = new FileInputStream("/sdcard/Download/yy.txt");
byte[] bytes = new byte[1024];
int len = 0;
StringBuilder stringBuilder = new StringBuilder();
while((len = fileInputStream.read(bytes))!=-1){
stringBuilder.append(new String(bytes,0,len));
}
以上就是一个简单的SD卡存储样式。
需要注意的是,在Android6.0也就是API版本23及其以上我们在使用SD卡存储是,要先给该应用程序写一个动态添加读写权限的代码,否则将会无法使用SD存储方式。
好了,以上就是今天要讲的两种存储方式。
感谢大家的观看。

你可能感兴趣的:(android的SP存储和SD卡存储)