一般存储数据无非分为SP存储和数据库还有文件存储,这里我们说下文件存储openFileOutput和取出数据openFileInput

我们在一不小心退出APP如果再无退出之前不将数据保存的话数据是会丢失的,那么如何保存呢?接下来说下openFileOutput这个方法,它是默认存储在data/data/app包名/files/目录下面的,当然手机不root是看不到数据的,请自行使用模拟器查看。

有保存那就肯定有取出?对的,我也找到了对应的取出数据的方法,openFileInput,直接上代码。

mainactivity.java

package cn.xiayiye.savefile;import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.EditText;
import android.widget.Toast;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class MainActivity extends Activity {private String trim;private EditText save_data;private BufferedReader bufferedReader;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);save_data = (EditText) findViewById(R.id.save_data);try {FileInputStream save = openFileInput("save");bufferedReader = new BufferedReader(new InputStreamReader(save));StringBuffer sb = new StringBuffer();String line = "";while ((line = bufferedReader.readLine()) != null) {sb.append(line);}save_data.setText(sb.toString());} catch (FileNotFoundException e) {e.printStackTrace();Toast.makeText(this, "未找到保存的文件", Toast.LENGTH_SHORT).show();} catch (IOException e) {e.printStackTrace();} finally {if (bufferedReader != null) {try {bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}}}@Overrideprotected void onDestroy() {super.onDestroy();trim = save_data.getText().toString().trim();saveFile(trim);}private void saveFile(String trim) {if (TextUtils.isEmpty(trim)) {Toast.makeText(this, "填写数据在保存!", Toast.LENGTH_SHORT).show();} else {try {//save代表保存的文件名称FileOutputStream save = openFileOutput("save", MODE_PRIVATE);//默认保存到data/data/包名/files/目录下BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(save));try {bufferedWriter.write(trim);} catch (IOException e) {e.printStackTrace();} finally {if (bufferedWriter != null) {try {bufferedWriter.close();} catch (IOException e) {e.printStackTrace();}}}} catch (FileNotFoundException e) {e.printStackTrace();}}}}

接下来我们看下xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"tools:context="cn.xiayiye.savefile.MainActivity"><EditTextandroid:id="@+id/save_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:hint="输入文本保存"/></LinearLayout>

就这么点代码非常简单。

如果需要源码请下载

源码下载

Android文件存储方式之openFileOutput与获取数据openFileInput相关推荐

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

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

  2. android获取文件上级目录,Android 文件存储

    Android 存储位置及 API 一.内部存储 应用安装后都会在Android 根目录生成 /data/data/packagename,当前应用读取不需要读写权限 注意: 有些开发者可能看到过应用 ...

  3. android qq存储方式,android(5)(模拟QQ登录,文件存储,SD卡存储,SharedPreferences存储)...

    模拟QQ登录(记录账号和密码): 1.文件存储到文件中: /** * 文件存储 *@author Administrator * */ public class Utils { /** * 保存用户信 ...

  4. Android 五大存储方式具体解释

    SharedPreferences与Editor SharedPreferences保存的数据仅仅要是类似于配置信息格式的数据.因此它保存的数据主要是简单的key-value对形式.以下关系图 上图全 ...

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

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

  6. android 文件存储 集合,Android 文件存储的基本使用

    在Android中我们大多数情况下我们用的都是绝对路径: 文件存储位置说明: 内部存储不是内存,内部存储位于系统中很特殊的一个位置,当应用被卸载后,内部存储的文件夹也被删除,一个应用所创建的所有文件都 ...

  7. Android 文件存储-图片存储

    因 Android1 1谷歌禁止使用requestLegacyExternalStorage ,故将存储方式分为两种方式来进行文件存储. 存储你的应用打算与其他应用共享的文件,包括媒体.文档和其他文件 ...

  8. Android文件存储编程实验,Android编程中File文件常见存储与读取操作demo示例

    本文实例讲述了Android编程中File文件常见存储与读取操作.分享给大家供大家参考,具体如下: MainActivity文件代码如下: package example.com.myapplicat ...

  9. android 文件存储基础

    要搞清楚文件存储首先需要知道内存 和外存的定义 内存: 在任何时候都是可用的, 默认情况你存储的文件只有你自己的应用可用访问 当用户卸载app时候,系统删除所有内存中保存的文件 外存:不总是可以使用的 ...

最新文章

  1. 有java基础的人学python_准备自学Python ,会java,有什么建议吗?
  2. Linux查看CPU信息、机器型号等硬件信息
  3. MySQL 创建用户与修改密码
  4. 牛人主页(主页有很多论文代码)【真的好强大】
  5. 从位图数据取得位图句柄
  6. 从零开始学习Hadoop--第2章 第一个MapReduce程序
  7. nodejs模块之event
  8. iOS开发中常见的一些异常
  9. java多线程测试性能,总线程使用总时间。
  10. 计算机考试用户注册,全国计算机等级考试报名系统账号注册和登录
  11. 使用C语言判断一个数是否为素数
  12. DSI3协议理论基础讲解
  13. IDEA使用教程(一) 基础配置
  14. 【Java】奇偶数判断
  15. JavaScript三种注释写法
  16. random模块——随机数常用函数介绍
  17. 基于MATLAB图像处理
  18. 解决Unexpected end of JSON input while parsing near的报错问题
  19. java获取上级菜单_java在多菜单中返回上级菜单如何实现
  20. 抖音助手,帮您自动切换下一个视频

热门文章

  1. 怎么读取mysql库绘制柱状图_从数据库中取出最近三十天的数据并生成柱状图
  2. 30天自制操作系统 pdf_30天自制操作系统:第四天:系统界面绘制
  3. sizeof 数组_简单的一维数组竟然有这么多坑?
  4. 电脑上有一个程序一直在按向上_HUAWEI Matebook 九个超牛电脑快捷键
  5. 农艺师需要职称计算机,2015年农艺师职称计算机考试宝典.doc
  6. 自己帮别人写的网站可以公开源码吗_雷军靠写代码赚第一个 100 万,马化腾亲自写腾讯网,码农出身的大佬...
  7. Node Sass does not yet support your current environment
  8. UNIX网络编程——解决TCP网络传输“粘包”问题
  9. hibernate添加spring 事务管理注意问题记录
  10. 很有意思的css口诀