文件存储——安卓存储方案之二

来源:互联网 发布:全能数据恢复中文版 编辑:程序博客网 时间:2024/06/04 01:13

文件存储

△概述

→安卓提供了相关API,让你可以以流的方式去读写数据,这跟原来java里的流操作的方式基本一致,如果你对java流操作很熟悉,其实安卓里的文件操作没有什么特别新鲜的东西的。
→根据存储位置不同,文件存储可以分为内部存储(Internal storage)、外部存储(External storage)。
→内部存储的文件,属于你的应用私有文件,其他应用不能访问这个文件,用户也不能访问该文件,当你的应用被卸载,这些文件也会自动被删除掉。

△内部存储(Internal storage)的使用


想要写出一个文件,一共只有三个步骤,非常简单:
1,调用openFileOutput()方法获取"FileOutputStream"对象。
2,调用"FileOutputStream"对象里的write()方法写出相关数据。
3,调用"FileOutputStream"对象里的close()方法关闭该流。
openFIleOutput()方法接受两个参数,第一个是文件名字,第二个是操作模式。文件名字没有什么可解释的,操作方式共有四类:
1,MODE_PRIVATE:私有模式,注意如果使用这个模式,当你所传入的名字所对应的文件已经存在,文件原内容将会被全部覆盖。
2,MODE_APPEND:继续追加,如果所传入的名字所对应的文件已经存在,再往里面写数据时,不会覆盖源文件的内容,而是会在文件末尾追加内容。
3,MODE_WORLD_READABLE_:允许外界读取这个文件。
4,MODE_WORLD_WRITABLE:允许外界对该文件写入数据。
存储路径:通过这个方法所获得的流对象的文件都存储在:/data/data/<包名>/files/目录下面,不同文件仅仅通过文件名来区分。
代码示例,如下代码就将文件写出(写向硬盘):
String fileName = "fileName";String content = "content";try{//打开文件的输出流    FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);    fos.write(content.getBytes());//写入    fos.close();//关流}catch (Exception e){    Log.i("test", e.toString());}


想要读取一个文件,也很简单,步骤和之前的基本一样,只是方法换了一下。
1,调用openFileInput()方法获取"FileInputStream"对象。
2,调用"FileInputStream"对象里的read()方法读取字节数据。
3,调用"FIleInputStream"对象里的close()方法关流。

如下代码读取刚才所写数据。

try {//    打开文件的读取流并且加入转换流和缓冲区里    BufferedReader bfrd = new BufferedReader(new InputStreamReader(openFileInput(fileName)));    String data;    while ((data = bfrd.readLine()) != null) {        Log.i("test", data);    }}catch (Exception e){        Log.i("test",e.toString());}



0 0
原创粉丝点击