前言

Android操作文件的方式和JAVA I/O操作是十分类似的,在这个我小谈一下。


Android写入文件

在Android中Context类提供了openFileOutput()方法,用于文件写入。默认存储路径为/data/data/<package name>/files/中。

openFileOutput原型:

public FileOutputStream openFileOutput(String name, int mode)throws FileNotFoundException {return mBase.openFileOutput(name, mode);
}

第二个参数mode有4个类型:

MODE_APPEND:检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

写入例子福利:

public void write(String inputText){FileOutputStream out = null;BufferedWriter writer = null;try {out = openFileOutput("data", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(inputText);} catch (Exception e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (Exception e2) {e2.printStackTrace();}}
}

Android读取文件

同样,在Android中Context类还提供了openFileInput()方法,用于文件写入。

openFileInput原型:

public FileInputStream openFileInput(String name)throws FileNotFoundException {return mBase.openFileInput(name);
}

参数很简单,就一个文件名。

读取例子福利:

public String load(String fileName){FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {in = openFileInput(fileName);reader = new BufferedReader(new InputStreamReader(in));String line = "";while((line = reader.readLine()) != null){content.append(line);}} catch (Exception e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (Exception e2) {e2.printStackTrace();}}}return content.toString();}
}

总结

文件读取的核心就是Context提供的openFileInput()openFileOutput(),操作起来很简单,但是不适合用于保存一些复杂的文本数据。


博客名称:王乐平博客

博客地址:http://blog.lepingde.com

CSDN博客地址:http://blog.csdn.net/lecepin

Android 数据存储之文件存储小记相关推荐

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

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

  2. 文件存储管理 android,Android数据持久化之文件存储

    一. 文件存储路径分类 1. 内部存储 内部存储是指在system分区(根目录)下的data/data/package name/下的文件. 这层目录普通用户和程序一般无法直接访问,当前应用的文件也只 ...

  3. Android 保存QQ密码(数据存储:文件存储、SharedPreferences)

    源码[工程文件]:https://gitee.com/lwx001/saveQQ MainActivity.java: package cn.lwx.saveqq;import android.os. ...

  4. Android(数据存储:文件存储、SharedPreferences)验证QQ密码

    前情提要1 :静态页面-简易QQ登录页面(纯activity_main.xml页面) [https://blog.csdn.net/weixin_44949135/article/details/10 ...

  5. android文件存储数组,Android面试简录——文件存储

    * SharedPreferences 请描述Android SDK支持哪些文件存储技术? 1.SharedPreferences保存key-value类型的数据 2.流文件存储(openFileOu ...

  6. android数据的五种存储方式

    Android提供了5种方式存储数据 1 使用SharedPreferences存储数据 它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息. 其存储位置在/da ...

  7. Android数据的四种存储方式

    很清晰的思路,转自Android数据的四种存储方式 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQL ...

  8. Android基础知识(二十一):Android五大存储之文件存储、Content Provider存储和网络存储

    Android基础知识(二十一):Android五大存储之文件存储.Content Provider存储和网络存储 一.Android存储--持久化技术 数据持久化是指将那些内存中的瞬时数据保存到存储 ...

  9. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider...

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  10. 对象存储2:数据存储类型-文件存储、块存储、对象存储详解

    上一篇介绍了传统存储的几个常用类型,本篇主要介绍云平台用到的常用存储类型,分别是文件存储.块存储和对象存储. 这种分类是以数据存储的方式来命名的,体现了不同的数据存储格式.文件存储会以文件和文件夹的层 ...

最新文章

  1. CCleaner v5.12.5431 单文件汉化版
  2. 在python中,小数点前的0可以省略不写...
  3. pyodbc psutil wmi paramiko
  4. 名词解释失效安全_09失效分析复习题新
  5. python进阶学啥书籍_2018年Python学习进阶书籍推荐
  6. android 动态矩形条,android – 从相机中动态检测不同形状(圆形,方形和矩形)?
  7. [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
  8. jQuery中的事件冒泡、事件捕获和事件追加引发的问题
  9. 微信小程序android错误,app安卓端 跳转到微信小程序失败
  10. hystrix基于request cache请求缓存技术优化批量数据查询接口
  11. Eclipse添加git插件上传项目到github
  12. 糖原代谢疾病行业调研报告 - 市场现状分析与发展前景预测
  13. python工资一般多少西安-在西安为什么对Python编程需求这么大?工资这么高?
  14. 【面试题37】两个链表的第一个公共结点
  15. python绘图多子图 分别美化
  16. 【stm32学习】正点原子stm32f103学习——开发板入门
  17. 利用python的requests爬取高清壁纸
  18. SEO与爱情,十字路口中的抉择
  19. dispatch_queue_create创建源码分析
  20. 利用Pygame制作跳跃的小球游戏

热门文章

  1. SaltStack源码分析之:master端执行salt模块大致流程
  2. find_cmd函数分析
  3. 异常检测时间序列_时间序列的无监督异常检测
  4. 315. 计算右侧小于当前元素的个数
  5. leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
  6. 数据挖掘—Apriori算法(Java实现)
  7. leetcode 830. 较大分组的位置
  8. leetcode 714. 买卖股票的最佳时机含手续费(dp)
  9. ariel字体_播客第58集:软件开发人员和freeCodeCamp超级巨星Ariel Leslie
  10. apache mesos_试用Apache Mesos HTTP API获得乐趣和收益