概述:

之前我写过一篇博客,叫《Android中SharedPreferences与Editor的使用》。说的是在Android程序中保存数据(多是一些配置参数的数据)的应用。Android中的5种数据存储方式在之前的那篇文章中也有简单介绍。今天,我就来说说Android文件操作中的openFileOutPut和openFileInput。

我想大家或多或少都有学习过一段时间的Java吧,学习Android,Java是基础。今天要写的这个文件操作与Java中文件操作基本上是差不多的。都是要先去创建一个输入流/输出流,然后,我们就是通过从指定文件中按字节来读取文件中的内容到我们的输入流中,再把读进来的数据追加到一个字符串缓存中(这里用的是StringBuilder),当然你要是觉得不喜欢new来new去,也可以直接使用String类型的字符串。

供读文件关键代码:

/*** 读数据*/private void readerDataFromSD() {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 获取SDcard路径StringBuilder sb = new StringBuilder();try {File sdCardDir = Environment.getExternalStorageDirectory();File file = new File(sdCardDir, FILE_NAME);InputStream inputStream = new FileInputStream(file);int len = 0;byte[] buffer = new byte[1024];while ((len = inputStream.read(buffer)) != -1) {sb.append(new String(buffer, 0, len));}mShowResultTextView.setText(sb.toString());inputStream.close();} catch (Exception e) {e.printStackTrace();}}}

写文件的时候,我们要先创建一个输出流,再将FileOutputStream包装成PrintStream,最后输出。当然,大家也可以不用包装流,直接使用节点流写数据也可以,就像上面读数据一样。

写文件关键代码:

/*** 写数据*/private void writeData2SD() {System.out.println("往SDCard里写数据");// 先判断是否有SDCardif (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {String content = mContentEditText.getText().toString();try {// 获取SDcard路径File sdCardDir = Environment.getExternalStorageDirectory();File file = new File(sdCardDir, FILE_NAME);// File file = new File(sdcardPath + File.separator + FILE_NAME);// 以指定文件创建RandomAccessFile对象RandomAccessFile raf = new RandomAccessFile(file, "rw");// 将文件记录指针移动最后raf.seek(file.length());// 输出文件内容raf.write(content.getBytes());raf.close();} catch (Exception e) {e.printStackTrace();}}}

大家可以看到上有一句

raf.seek(file.length());

它是将文件记录指针移动到最后的位置。所以这种方式就是以追加的方式来写文件了。如果你不想以这种方式来写文件,那就要把这句话除掉。

权限说明:

另外,别忘了添加读写文件的权限:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

参考资料:

《疯狂Android讲义》

Android文件操作中的openFileOutPut和openFileInput相关推荐

  1. Android - 文件读写操作 总结

    http://blog.csdn.net/ztp800201/article/details/7322110 在android中的文件放在不同位置,它们的读取方式也有一些不同. 本文对android中 ...

  2. 【转】Android - 文件读写操作 总结

    Android - 文件读写操作 总结 原文出处:http://blog.csdn.net/ztp800201/article/details/7322110 在android中的文件放在不同位置,它 ...

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

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

  4. android 数据文件存储,实例详解Android文件存储数据方式

    总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...

  5. Android - 文件存储

    一.概念 机身存储在概念上被分为了内置存储和外置存储,插存储卡或外接U盘硬盘都属于外置存储(这年头几乎都不支持插卡,就算外接这种场景属于用户主动转移文件,而不是APP要考虑往那里存). 含有包名的路径 ...

  6. android 文件读写概述

    (1)data/data下面主要是/data/data/Package Name目录, 该目录下面主要是/data/data/Package Name/Shared_Pref, /data/data/ ...

  7. Android 文件读写最全解析

    本文目录 Android文件读写概述 读取raw目录文件 读取assets目录文件 data/data/(包名) 目录文件读写 写数据 读数据 sdcard文件读写 申请动态权限 写数据 读数据 sd ...

  8. 安卓学习专栏——从文件中读取数据、openFileInput(图文+代码)

    步骤 系列文章 前言 1.实现效果 1.1启动时初始化填写读取的数据,或是点击读取显示数据 1.2保存新数据 1.3点击读取按钮读取数据 1.4重启查看效果 2.xml外观文件 3.java功能文件 ...

  9. android的文件操作,Android文件操作概要1.ppt

    Android文件操作概要1 Linux文件系统 在Linux中,文件的扩展名并不重要,一个文件是否可以访问或执行,是完全由文件属性来决定的.细心的读者会发现最后一列比较特殊,这一列描述的是Linux ...

最新文章

  1. PHP根据时间戳返回星期几
  2. C++中重载下标运算符[]
  3. guido python正式发布年份_Python语言适合哪些领域的计算问题? (1.3分)_学小易找答案...
  4. vb上传文件到MySQL_ASP.NET上传文件到数据库VB版
  5. Python基础教程学习目录 - Python入门教程
  6. 零基础入门CV赛事-Task1 赛题理解
  7. html显示时间,并且实时刷新(详细代码)
  8. python dateutil_python时间处理模块dateutil
  9. 智能家居市场未来发展潜力巨大,未来可期!
  10. 2019第三季度UWA STAR:解答亦是学习
  11. USB转双串口产品设计-RS232串口
  12. ffmpeg遇到Non-monotonous DTS in output stream的问题
  13. ROS——在Ubuntu18.04下基于ROS Melodic编译python3的cv_bridge
  14. 虚幻引擎4控制台变量和命令
  15. 如何测试蓝牙设备的延时
  16. 全国大学生数学竞赛备考——高数上(极限、导数、微分、积分、级数)
  17. 新浪股东批准私有化合并协议;中集车辆创业板成功过会;中国红牛2020年销售额超228亿元​ | 美通企业周刊...
  18. 纸短情长用计算机破出来的数字,纸短情长简谱数字大全 一看就会的简谱
  19. 编程实现在Linux系统中Intel CPU功耗的获取
  20. SQL server 2000 标准版、企业版、开发版、个人版各版本之间的区别

热门文章

  1. Bitcoin 地址原理(1)Base58编码
  2. 机器学习(六)——优化器
  3. 字符串函数实现(strlen,strcpy,strcmp,strcat,strrev)
  4. ORM多表查询——关联查询
  5. 02-cache的基本概念原理扫盲
  6. MTK方案下tee.img的打包方式的详细拆解
  7. BUUCTF [FlareOn1]Bob Doge [GXYCTF2019]
  8. 2020-10-25(个人int误区)
  9. 【安全漏洞】挖洞小记
  10. 【CTF大赛】第五届XMan选拔赛 ezCM Writeup