`
_小菜鸟
  • 浏览: 34107 次
社区版块
存档分类
最新评论

我的android 第9天 - 文件存储

 
阅读更多

数据存储与访问

  很多时候我们的软件需要对处理后的数据进行存储或再次访问。Android为数据存储提供了多种方式,分别有如下几种:

    文件(txt\xml)

    SharedPreferences(参数)

    SQLite数据库

    内容提供者(Content provider

    网络

介绍:文件存储是Android开发中常用的操作,本节主要针对文件在手机内存卡以及SDCard的存储实现

案例:在Activity界面中实现对文件的存储与读取

一、场景分析

 

控件:2EditText2Button
场景:当点击保存,把用户写入的内容存入到指定的文件名中(内存与sdcard

       当点击读取,从内存或者sdcard中读取指定的文件到文本框中

 

 

  二 实现

/**

   * 保存文件到手机自带存储空间

   * @paramfileName文件名

   * @paramfileBody文件内容

   */

  public void save(String fileName, String fileBody) throws Exception{

  // 文件名不能包含路径 , 文件保存在 /data/data/包名/files

  FileOutputStreamfos = context.openFileOutput(fileName, Context.MODE_PRIVATE);

  fos.write(fileBody.getBytes());

  fos.close();

  }

 

  /**

   * 读取文件内容

   * @paramfileName文件名

   * @return 文件内容

   */

  public String read(String fileName) throws Exception {

  // 会读取 /data/data/包名/files文件夹下的文件

  FileInputStreamfis = context.openFileInput(fileName);

 

  ByteArrayOutputStreambaos = new ByteArrayOutputStream();

 

  byte[] buffer = new byte[1024];

  intlen = -1;

  while ( (len = fis.read(buffer)) != -1) {

  baos.write(buffer, 0, len);

  }

  fis.close();

  baos.close();

 

  return new String(baos.toByteArray());

  }

 

  /**

   * 保存文件到SDCard

   */

  public void saveToSDCard(String fileName, String fileBody) throws Exception {

  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

  // 得到SDCard根路径

  File rootDir = Environment.getExternalStorageDirectory();

  File file = new File(rootDir, fileName);

  FileOutputStreamfos = new FileOutputStream(file);

  fos.write(fileBody.getBytes());

  fos.close();

  } else {

  throw new RuntimeException("SDCard无法正常使用");

  }

 

  }

1.手机自带存储空间

1> 存储

 * context.openFileOutput(String name, int mode)

   * name : 文件名(不能包含路径)

   * mode : 文件操作模式

     - Context.MODE_PRIVATE

        * 只能被本应用读写

  * 新写入的内容会覆盖原文件内容

     - Context.MODE_APPEND

        * 只能被本应用读写

  * 新写入的内容会追加到原文件内容后面

     - Context.MODE_READABLE

        * 允许其他应用读取,不可以写入

  * 新写入的内容会覆盖原文件内容

     - Context.MODE_WRITEABLE

        * 允许其他应用写入,不可以读取

  * 新写入的内容会覆盖原文件内容

    (如果要求其他应用可以对文件进行读和写,那就Context.MODE_READABLE + Context.MODE_WRITEABLE)

 

 * 存储到/data/data/包名/files/文件名

 

2> 访问

 * context.openFileInput(name)

 * 默认访问/data/data/包名/files/文件名

 * 通过context.getFilesDir()可以获取/data/data/包名/files这个路径

 * 通过context.getCacheDir()可以获取/data/data/包名/cache这个路径

 

3> 特点:

  * 存储的文件不能太大

  * 不依赖于SDCard

  * 当应用被卸载了,/data/data/包名  这个目录也会被删除

 

2.SDCard

1> 检测SDCard状态

说明SDCard是可用的:Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

 

2> SDCard写入内容

 * 先添加权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 * 得到SDCard根路径: File rootDir = Environment.getExternalStorageDirectory();

 * 生成输出流:

 File file = new File(rootDir, fileName);

 

 FileOutputStreamfos = new FileOutputStream(file);

 

下载视频代码

 

 

  

分享到:
评论

相关推荐

    Android高级编程--源代码

    第9章 P2P通信 279 9.1 Android即时消息简介 279 9.1.1 使用GTalk服务 280 9.1.2 和GTalk服务绑定 281 9.1.3 建立GTalk连接,开始一个IM会话 282 9.1.4 在线状态和联系人列表简介 282 9.1.5 管理聊天会话 285 ...

    Android手机平台音乐播放器毕业论文

    Android手机平台音乐播放器毕业论文 目录 第一章 引 言 - 1 - 1.1 项目背景 - 1 - 1.2 编写目的 - 2 - 第二章 系统需求分析 - 3 - 2.1 功能需求(用例图分析) - 3 - 2.1.1 播放器的基本控制需求 - 3 - 2.1.2 播放...

    Android音乐播放器毕业设计论文

    第三章 Android数据库设计 - 13 - 3.1 数据库及字段属性设计 - 13 - 3.1.1 字段设计(表、图) - 13 - 3.1.2 音乐播放器E-R图 - 15 - 3.2 数据库连接 - 15 - 3.2.1 创建数据库 - 15 - 3.2.2 操作数据库 - 16 - 3.2.3...

    老罗android开发视频教程全集百度网盘下载

    【第一版第九章】老罗Android开发视频--存储数据和文件(7集) 【第一版第十章】老罗Android开发视频--对话框介绍(4集) 【第一版第十一章】老罗Android开发视频--通知的使用(2集) 【第一版第十二章】老罗...

    深入理解Android:卷I--详细书签版

     第9章分析了Vold和Rild,其中Vold负责Android平台中外部存储设备的管理,而Rild负责与射频通信有关的工作。本章的拓展思考部分介绍了嵌入式系统中与存储有关的知识,还探讨了 Rild和Phone设计优化方面的问题。 ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android SQLite--小巧好用的SQLite GUI管理工具

    非常好用的SQLiteSpy 1.8.16 ...刚开始时,该程序创建一个文件SQLiteSpy.db3(1 sqlite3的数据库)来存储的和设置。它不写任何其他文件或注册表。卸载一样只是简单的删除两个文件:应用程序的可执行文件和数据库文件。

    《Android开发权威指南》随书光盘[教学视频+源程序]

    光盘中包括视频文件和全部的源程序。...第九讲:多媒体开发 第十讲:2D游戏开发 第十一讲:HTML5与web移动开发 第十二讲:输入法 第十三讲:OPENGL ES 第十四讲:DNK编程 第十五讲:测试驱动开发 第十六讲:综合案例

    Android应用开发揭秘pdf高清版

    第9章 Android特色开发 9.1 传感器 9.2 语音识别 9.3 GoogleMap 9.3.1 GoogleMap概述 9.3.2 准备工作 9.3.3 GoogleMapAPI的使用 9.3.4 定位系统 9.4 桌面组件 9.4.1 快捷方式 9.4.2 实时文件夹 9.4.3 Widget开发 9.5...

    疯狂Android讲义源代码2

    第9章 使用ContentProvider实现数据共享 第10章 Service与Broadcast Receiver 第11章 多媒体应用开发 第12章 OpenGL与3D应用开发 第13章 Android的网络应用 第14章 管理Android手机桌面 第15章 传感器应用开发 第16...

    android开发揭秘PDF

    第9章 Android特色开发 9.1 传感器 9.2 语音识别 9.3 GoogleMap 9.3.1 GoogleMap概述 9.3.2 准备工作 9.3.3 GoogleMapAPI的使用 9.3.4 定位系统 9.4 桌面组件 9.4.1 快捷方式 9.4.2 实时文件夹 9.4.3 Widget开发 9.5...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    第9章、使用ContentProvider实现数据共享 9.1、数据共享标准:ContentProvider; Uri; ContentResolver; 9.2、操作系统的ContentProvider:使用ContentProvider管理联系人和多媒体; 9.3、实现ContentProvider:...

    《Android高级编程》

    第9章 P2P通信 9.1 Android即时消息简介 9.1.1 使用GTalk服务 9.1.2 和GTalk服务绑定 9.1.3 建立GTalk连接,开始一个IM会话 9.1.4 在线状态和联系人列表简介 9.1.5 管理聊天会话 9.1.6 发送和接收数据信息 9.2 SMS...

    Android开发案例驱动教程 配套代码

    第9章 Activity和Intent 179 9.1 Activity 179 9.1.1 创建Activity 179 9.1.2 Activity生命周期 180 9.2 Intent 183 9.2.1 显式Intent 184 9.2.2 隐式Intent 186 9.2.3 匹配组件 186 9.3 多Activity之间跳转...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    第9章 Google服务与Android混搭 9.1 Google帐号验证Token——AuthSub 9.2 Google搜索——AutoCompleteTextView与GoogleSearchAPI 9.3 前端产生QRCode二维条形码——GoogleChartAPI 9.4 以经纬度查找目的地位置——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    第9章 Google服务与Android混搭 9.1 Google帐号验证Token——AuthSub 9.2 Google搜索——AutoCompleteTextView与GoogleSearchAPI 9.3 前端产生QRCode二维条形码——GoogleChartAPI 9.4 以经纬度查找目的地位置——...

    Android高薪之路:Android程序员面试宝典 李宁

    第9章 电话 短信和联系人 9 1 来电和回电 9 2 短信 9 3 彩信 9 4 联系人 第10章 多媒体技术 10 1 音频 10 2 视频 10 3 摄像头 10 4 铃声 第11章 2D绘图与动画技术 11 1 绘制基本图形 11 2 图像特效 11 3 路径 11 4 ...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    第9章 Google服务与Android混搭 9.1 Google帐号验证Token——AuthSub 9.2 Google搜索——AutoCompleteTextView与GoogleSearchAPI 9.3 前端产生QRCode二维条形码——GoogleChartAPI 9.4 以经纬度查找目的地位置——...

    Android 4高级编程(第3版)源代码

    内容推荐  《Android 4高级编程...第9章 在后台操作 第10章 扩展用户体验 第11章 高级用户体验 第12章 硬件传感器 第13章 地图、地理编码和基于位置的服务 第14章 个性化主屏幕 第15章 音频、视频以及摄像头的使用

Global site tag (gtag.js) - Google Analytics