在上一节我们介绍了Android的数据存储之SharedPreferences,我们知道利用SharedPreferences一般存储的内容是一些key-value键值对,而有时候我们却要存储的是一些数据内容,这时候我们可以采用文件存储,在Android系统中,我们可以很方便的利用文件存储我们想要的内容

Context为我们提供了以下的几个方法

方法名称

描述

FileInputStream openFileInput(String name)

打开应用程序的数据文件夹下的name文件对应的输入流

FileOutputStream openFileOutput(String name,int mode)

打开应用程序的数据文件夹下的name文件对应的输出流,并且指定以某种方式打开。

第二个方法里的第二个参数有以下几种取值:

MODE_PRIVATE:说明该文件只能被当前的应用程序所读写

MODE_APPEND:以追加方式打开该文件,应用程序可以向该文件中追加内容。

MODE_WORLD_READABLE:该文件的内容可以被其他的应用程序所读取

MODE_WORLD_WRITEABLE:该文件的内容可以被其他的应用程序所读、写

还有一些Context为我们提供了其他几个方法用来访问应用程序的数据文件夹

方法名称

描述

getDir(String name,int mode)

在应用程序的数据文件下获取或创建name对应的子目录

File getFilesDir()

得到该应用程序数据文件夹的绝对路径

String[] fileList()

等到该应用程序数据文件夹下的全部文件

deleteFile(String name)

删除该应用程序的数据文件夹下的指定文件

文件存储的位置: /data/data/<package name>/files/

关于IO流的一些内容,可以参看我之前写的一篇博客:

http://blog.csdn.net/jiahui524/article/details/6869524

http://blog.csdn.net/jiahui524/article/details/6869615

实例:File的简单操作

package com.jiahui.filedemo;import java.io.FileNotFoundException;import java.io.InputStream;import java.io.OutputStream;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class FileDemoActivity extends Activity {private Button btnWrite, btnRead, btnGetDir;private EditText edtContent;private TextView tvResult, tvFileDir;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);edtContent = (EditText) this.findViewById(R.id.edtContent);tvResult = (TextView) this.findViewById(R.id.tvResult);tvFileDir = (TextView) this.findViewById(R.id.tvFileDir);btnWrite = (Button) this.findViewById(R.id.btnWrite);btnRead = (Button) this.findViewById(R.id.btnRead);btnGetDir = (Button) this.findViewById(R.id.btnGetDir);// 写入数据btnWrite.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {try {String content = edtContent.getText().toString();// 以追加方式写入数据OutputStream outputStream = FileDemoActivity.this.openFileOutput("test.txt", MODE_APPEND);if (content != null) {outputStream.write(content.getBytes(), 0,content.getBytes().length);}outputStream.close();} catch (Exception e) {e.printStackTrace();}}});//读取数据btnRead.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {try {StringBuilder sb = new StringBuilder();InputStream inputStream = FileDemoActivity.this.openFileInput("test.txt");byte[] buffer = new byte[1024];int len = 0;while ((len = inputStream.read(buffer)) != -1) {sb.append(new String(buffer, 0, len));}tvResult.setText("读取结果为:" + sb.toString());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}});//得到相应文件的绝对路径btnGetDir.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String absolutePath = FileDemoActivity.this.getFileStreamPath("test.txt").getAbsolutePath();tvFileDir.setText(absolutePath);}});}}


实现效果:

用File Explorer查看,我们可以看到在相应的包下如下效果:

如需转载引用请注明出处:http://blog.csdn.net/jiahui524

更多相关文章

  1. Android的系统架构
  2. Android系列教程之Android项目的目录结构
  3. Android的Handler总结
  4. spring for android
  5. Android中的资源与国际化!
  6. 在android market发布个人免费应用的步骤
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. python起点网月票榜字体反爬案例
  9. NPM 和webpack 的基础使用

随机推荐

  1. 最近Android挺火啊,都没有什么感想吗
  2. 微软和Wistron再度联手,Android和Chrome O
  3. 华硕 Eee Pad Transformer 3G 版本台湾地
  4. 对Android初学者学习中的几点建议
  5. android车载娱乐系统跟android平板的分析
  6. 深入Android(安卓)【一】 ―― 序及开篇
  7. Android状态栏和虚拟导航栏的适配总结
  8. Android省电策略
  9. Android(安卓)内存浅析【管理、机制、分
  10. android关于使用哪个版本开发的讨论