Android中数据存储常用目录是,android中数据存储与访问

一、存储的位置目录

向sd写入数据需要一下权限

一个程序的私有数据存放在/data/data/包名/下,

常用的方法

getFileDir(): 访问默认目录,创建file文件夹,存放重要的程序数据

getCacheDir():访问默认目录,创建cache文件夹

这些方法都在 context 中

public abstract class Context

extends Object

(http://www.androiddoc.com/reference/java/lang/Object.html)

Context中的抽象方法在ComtextImpl中实现

二、android程序中文件权限

在android中,每个第三方的应用程序都是一个访问用户,在底层都是一个独立的用户,这样的好处是即给了程序很多权限,又能保证其他程序的安全,利用已有的linux的安全措施,省去很多的麻烦,具体如图

4e9cf27aa7a1

172434_uBEH_28.png

权限管理使用的是linux的权限管理。每个程序就是一个user

三、存取数据的方法

一、存取文件

android中的存取文件的方法是对 java 的一个组织

常用方法

openFileOutput()

实现的细节

@Overridepublic FileInputStream openFileInput(String name) throws FileNotFoundException {

File f = makeFilename(getFilesDir(), name);

return new FileInputStream(f);

}

@Overridepublic File OutputStream openFileOutput(String name, int mode) throws FileNotFoundException {

final boolean append = (mode&MODE_APPEND) != 0;

File f = makeFilename(getFilesDir(), name);

try {

FileOutputStream fos = new FileOutputStream(f, append);

setFilePermissionsFromMode(f.getPath(), mode, 0);

return fos;

} catch (FileNotFoundException e)

{ }

File parent = f.getParentFile();

parent.mkdir();

FileUtils.setPermissions(parent.getPath(), FileUtils.S_IRWXU|FileUtils.S_IRWXG|FileUtils.S_IXOTH, -1, -1);

FileOutputStream fos = new FileOutputStream(f, append); setFilePermissionsFromMode(f.getPath(), mode, 0);

return fos;

二、SharedPreference存储数据

SharePreference的存储位置为data/data/包名/shared_prefs,

它的存储文件最终为xml文件,只不过标签变得固定。使用了固定的节点标签,如下:

使用SharedPreference可以存储配置文件,数据不是很复杂的数据。

SharedPreference进行存储的步骤:

创建SharedPreference变量

初始化sp变量

getSharedPreferences("文件名称",权限);

获取SharedPreference的编辑器

SharedPreference.Editor spEditor= sp.editor

使用spEditor的putxxx()方法存数据,使用sp.getxxx()方法取数据

使用commit()提交数据。

全部代码:

SharedPreferences sp=null;

sp=getSharedPreferences("config",MODE_PRIVATE);

SharedPreferences.Editor spEditor=sp.edit();spEditor.putBoolean("isSave",isChecked);

spEditor.commit();

读取的代码

SharedPreferences sp=null;

sp=getSharedPreferences("config",MODE_PRIVATE);

Boolean isCheck=sp.getBoolean("isSave",false);

三、XML存取

xml进行存储

xml存储数据主要通过XmlSerializer完成。

过程

FileOutputStream fos=new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"info.xml"));

//初始化xml序列

XmlSerializer xmls=Xml.newSerializer();

//设置输出流

xmls.setOutput(os,"utf-8");

try {

//xml的头文件

xmls.startDocument("utf-8",true);

//开始xml的根节点

xmls.startTag(null,"name");

xmls.endTag(null,"name");

//结束

xmls.endDocument();

//关闭文件输出流

fos.close();}

catch (IOException e)

{

e.printStackTrace();

}

while (flag != XmlPullParser.END_DOCUMENT) {

switch (flag) {

case XmlPullParser.START_DOCUMENT:

bookList = new ArrayList();

break;

case XmlPullParser.START_TAG: {

if ("book".equals(xmlp.getName())) {

book = new Book();

} else if ("id".equals(xmlp.getName())) {

book.setId(Integer.parseInt(xmlp.nextText()));

flag = xmlp.next();

} else if ("name".equals(xmlp.getName())) {

book.setName(xmlp.nextText());

flag = xmlp.next();

} else if ("price".equals(xmlp.getName())) {

book.setPrice(Float.parseFloat(xmlp.nextText()));

flag = xmlp.next();

}

}

break;

case XmlPullParser.END_TAG: {

if ("book".equals(xmlp.getName())) {

bookList.add(book);

book = null;

}

}

break;

}

flag = xmlp.next();

}

} catch (Exception e) {

e.printStackTrace();

}

三、数据库存取

常用的数据库的步骤为:

1 创建数据库访问类继承SqliteOprenHelper实现其中的方法,实现默认的构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值