在上一节我们介绍了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的简单操作

view plain print ?
  1. packagecom.jiahui.filedemo;
  2. importjava.io.FileNotFoundException;
  3. importjava.io.InputStream;
  4. importjava.io.OutputStream;
  5. importandroid.app.Activity;
  6. importandroid.os.Bundle;
  7. importandroid.view.View;
  8. importandroid.widget.Button;
  9. importandroid.widget.EditText;
  10. importandroid.widget.TextView;
  11. publicclassFileDemoActivityextendsActivity{
  12. privateButtonbtnWrite,btnRead,btnGetDir;
  13. privateEditTextedtContent;
  14. privateTextViewtvResult,tvFileDir;
  15. publicvoidonCreate(BundlesavedInstanceState){
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. edtContent=(EditText)this.findViewById(R.id.edtContent);
  19. tvResult=(TextView)this.findViewById(R.id.tvResult);
  20. tvFileDir=(TextView)this.findViewById(R.id.tvFileDir);
  21. btnWrite=(Button)this.findViewById(R.id.btnWrite);
  22. btnRead=(Button)this.findViewById(R.id.btnRead);
  23. btnGetDir=(Button)this.findViewById(R.id.btnGetDir);
  24. //写入数据
  25. btnWrite.setOnClickListener(newView.OnClickListener(){
  26. @Override
  27. publicvoidonClick(Viewv){
  28. try{
  29. Stringcontent=edtContent.getText().toString();
  30. //以追加方式写入数据
  31. OutputStreamoutputStream=FileDemoActivity.this
  32. .openFileOutput("test.txt",MODE_APPEND);
  33. if(content!=null){
  34. outputStream.write(content.getBytes(),0,
  35. content.getBytes().length);
  36. }
  37. outputStream.close();
  38. }catch(Exceptione){
  39. e.printStackTrace();
  40. }
  41. }
  42. });
  43. //读取数据
  44. btnRead.setOnClickListener(newView.OnClickListener(){
  45. @Override
  46. publicvoidonClick(Viewv){
  47. try{
  48. StringBuildersb=newStringBuilder();
  49. InputStreaminputStream=FileDemoActivity.this
  50. .openFileInput("test.txt");
  51. byte[]buffer=newbyte[1024];
  52. intlen=0;
  53. while((len=inputStream.read(buffer))!=-1){
  54. sb.append(newString(buffer,0,len));
  55. }
  56. tvResult.setText("读取结果为:"+sb.toString());
  57. }catch(Exceptione){
  58. //TODOAuto-generatedcatchblock
  59. e.printStackTrace();
  60. }
  61. }
  62. });
  63. //得到相应文件的绝对路径
  64. btnGetDir.setOnClickListener(newView.OnClickListener(){
  65. @Override
  66. publicvoidonClick(Viewv){
  67. StringabsolutePath=FileDemoActivity.this.getFileStreamPath(
  68. "test.txt").getAbsolutePath();
  69. tvFileDir.setText(absolutePath);
  70. }
  71. });
  72. }
  73. }


实现效果:

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

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

更多相关文章

  1. Android(安卓)Button及TextView动态变换颜色
  2. Android(安卓)RadioButton设置选中时文字和背景颜色同时改变
  3. android 基础知识
  4. Android(安卓)NDK编程中Application.mk和Android.mk写法
  5. Android(安卓)文件路径详解
  6. Android(安卓)Studio 4.0 稳定版发布了
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. python起点网月票榜字体反爬案例
  9. NPM 和webpack 的基础使用

随机推荐

  1. android获得mac和ip
  2. android自带Base64加密解密
  3. Android之短信发送器
  4. Linux 命令行更新指定版本 android sdk
  5. Android(安卓)调用系统浏览器 出现activi
  6. android API——EditText
  7. 1、ListView自定义控件下拉刷新(一)
  8. android 测试简介
  9. Android(安卓)开发中遇到的 bug(3)
  10. Android应用程序安装过程源代码分析(4)