上一节中简单的介绍了File的操作,这一节来说说使用android平台自带对象实现文件的基本操作

主要的两个类:openFileOutput(写)和openFileInput(读)

向文件中写如数据代码如下:

//向文件写入内容try {OutputStream os = openFileOutput("file-io.txt", Context.MODE_PRIVATE);String str = "向文件中写入数据";os.write(str.getBytes("utf-8"));os.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}

读取文中的代码如下:

//读取文件中的内容try {InputStream is = openFileInput("file-io.txt");byte[] buffer = new byte[100];int byteLength = is.read(buffer);String str2 = new String(buffer, 0, byteLength, "utf-8");text.setText(str2.toString());is.close();}  catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}

从上面的代码中可以看出:openFileOutput /openFileInput 的用法与之前的SharedPreferences 的用法有很大的相似性,下面简单说一下两者的异同:

SharedPreferences对象的创建:

SharedPreferences sp = getSharedPreferences("file",Contex.MODE_PRIVATE);

getSharedPreferences方法的第一个参数是指定要保存在手机内存中的文件名(不包括扩展名,扩展名为xml),第二个参数是表示SharedPreferences对象在创建XML文件时设置的文件属性;

Context.MODE_PRIVATE = 0 (默认),代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2

openFileOutput 方法是如何返回一个OutputStream对象的:

OutputStream os = openFileOutput("file.xml",Contex.MODE_PRIVATE);

openFileOutput 的第一个参数指定的文件名带有扩展名,第二个参数与getSharedPreferences的是一样的;从这两个方法来看,第一个参数只制定了文件名,并未包含文件的路径,因此, 这两个方法只能将文件保存在手机的内存中固定的路径 对于大文件可能内存不够

SharedPreferences 将XML 文件保存在:/data/data/<包名>/shared_prefs

openFileOutput 将文件保存在:/data/data/<包名>/files

Activity还提供了getCacheDir()和getFilesDir()方法:

getCacheDir()方法用于获取:/data/data/<package name>/cache 目录

getFilesDir()方法用于获取:/data/data/<package name>/files 目录。

android 数据持久化——I/O操作相关推荐

  1. android 清空数组缓存,Android数据持久化之读写SD卡中内容的方法详解

    本文实例讲述了Android数据持久化之读写SD卡中内容的方法.分享给大家供大家参考,具体如下: 前面文章里讲的那三个方法:openFileOutput.openFileInput虽然都能通过流对象O ...

  2. Android数据持久化

    Android数据持久化(存储) 1.SharedPreferences SharedPreferences是Android提供的数据持久化的一种手段,适合单进程.小批量的数据存储与访问.Shared ...

  3. Android数据持久化技术

    Android 数据持久化技术 数据持久化 文件存储 将数据存储到文件中 从文件中读取数据 SharedPreferences存储 使用SharedPreferences存储数据 从SharedPre ...

  4. Android数据持久化存储

    Android数据持久化存储共有四种方式,分别是文件存储.SharedPreferences.Sqlite数据库和ContentProvider.在本篇幅中只介绍前面三种存储方式,因为ContentP ...

  5. Android数据持久化:SharePreference

    SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...

  6. 马小看前端( vuex数据持久化简单的操作 )

    马小看前端( vuex数据持久化简单的操作 ) 1.首先在小黑框中下载插件! npm install vuex-persistedstate 2.在store.js中引入下面的代码,即可完成数据持久化 ...

  7. android 数据持久化——读写SD卡中的内容

    在前面讲的那三个方法:openFileOutput .openFileInput 虽然都能通过流对象OutputStream和InputStream可以处理任意文件中的数据,但与SharedPrefe ...

  8. Android数据持久化:文件存储

    数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...

  9. Android—数据持久化、SP源码

    3种数据持久化: File:openFileInput(String fileName).openFileOutput(String fileName, int mode) 不对存储的内容进行任何的格 ...

最新文章

  1. loadruner中加中Java_Script
  2. Python 3 教程二:文件,目录和路径
  3. 基于react native的登录界面demo 超简易教程 redux版
  4. SI 和 DI 寄存器的区别
  5. Polemo Chat客户端行为
  6. 从基于直方图的Graph-Cut到Grab-Cut
  7. web高德maker动画_Web Maker —我如何构建一个快速的离线前端游乐场
  8. android获取文件夹里最新的文件夹,Android 获取已存在的文件所在目录下的所有文件为null。...
  9. S1304第一本书内测测试分析
  10. onclick控制元素显示与隐藏时,点击第一次无反应的原因
  11. python程序员到哪里_Python程序员都知道的入门知识の五
  12. 字节跳动的 8 轮视频面试流程
  13. matlab中的textscan函数
  14. 人工智能全局概览:通用智能的当前困境和未来可能
  15. CTF密码学总结(一)
  16. 关于UpdateData函数
  17. Windows上获取cpu info, cpuid, cpu id 方法整理
  18. java学到能看懂代码_一篇文章能够看懂基础源代码之JAVA篇
  19. 李文卓:揭秘美丽说数据体系建设三部曲
  20. 何为非侵入式负荷监测-目标检测

热门文章

  1. IOS拍照控件同时显示拍照与录像
  2. OpenCV-扩充图像边界cv::copyMakeBorder
  3. matlab训练cifar10,认识CIFAR-10数据集
  4. .rpt文件内容读取java_linux第二天|shell文件/文件夹操作
  5. android uri跳转导航,android:scheme 通过uri跳转到APP应用指定Activity
  6. mysql binary-mode=1_Mysql 性能调优 二 1
  7. ant里面table嵌套子表格_ElementUI el-table行内编辑验证,动态增减行
  8. mqtt实例 php_php搭建MQtt协议服务
  9. android日历信息获取错误,android – 从日历中获取事件
  10. SQLite Tutorial 2 install free sqlite gui manager in firefox