android数据存储中的文件存储学习记录

Andoid系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储,SharedPreference存储以及SQLite数据库存。
储。此外还可以将数据保存在手机的SD卡中,但是安全性较弱。

文件存储将不对存储的内容进行任何的格式化处理,用于存储一些简单的文本数据或二进制数据。

Context类提供openFileOutput与openFileinput方法,分别返回一个FileOutputstram与Fileinputstream对象。

1、openFileOutput("文件名",操作模式)
文件名不能包含路径,所有文件默认存储到/data/data<package name>/file/目录下。
在eclipse中通过DDMS视图中的File Explorer进入目录查看。
主要操作模式:
MODE_PRIVATE  默认模式,内容覆盖原内容。
MODE_APPEND   模式若文件不存在则创建新文件,已存在则追加内容。
MODE_WORLD_READABLE,MODE_WOELD_WRITEABLE模式在android4.2版本已被废弃。


简单demo如下:
//保存字符串"Hello World"到data文件
public void saveData()
    {
    	FileOutputStream out=null;
	OutputStreamWriter osw=null;
    	BufferedWriter writer=null;

	String content="Hello World";
    	
    	try {
    		out=openFileOutput("data", Context.MODE_PRIVATE);
		osw=new OutputStreamWriter(out);
    		writer=new BufferedWriter(osw);
    		writer.write(content);

		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				if(writer!=null)
				{
					writer.close();
				}
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
    }

2、openFileInput("文件名")
从/data/data<package name>/file/目录下通过文件名加载文件。

简单demo如下:
//得到从data文件中读取的字符串
 public String loadData()
    {
    	FileInputStream in =null;
	InputStreamReader isr=null;
    	BufferedReader reader =null;
	
	String line;
    	StringBuilder build = new StringBuilder();

    	try {
			in = openFileInput("data");
			isr = new InputStreamReader(in);
			reader = new BufferedReader(isr);

			while((line=reader.readLine())!=null)
			{
				build.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(reader!=null)
			{
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
    	return build.toString();
    }

总结文件存储核心技术其实就是Context类中提供的openFileOutput与openFileinput方法,然后就是使用java的各种流来进行读写操作。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值