Android文件存储方式之openFileOutput与获取数据openFileInput
一般存储数据无非分为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相关推荐
- android 数据文件存储,实例详解Android文件存储数据方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...
- android获取文件上级目录,Android 文件存储
Android 存储位置及 API 一.内部存储 应用安装后都会在Android 根目录生成 /data/data/packagename,当前应用读取不需要读写权限 注意: 有些开发者可能看到过应用 ...
- android qq存储方式,android(5)(模拟QQ登录,文件存储,SD卡存储,SharedPreferences存储)...
模拟QQ登录(记录账号和密码): 1.文件存储到文件中: /** * 文件存储 *@author Administrator * */ public class Utils { /** * 保存用户信 ...
- Android 五大存储方式具体解释
SharedPreferences与Editor SharedPreferences保存的数据仅仅要是类似于配置信息格式的数据.因此它保存的数据主要是简单的key-value对形式.以下关系图 上图全 ...
- android文件存储数组,Android面试简录——文件存储
* SharedPreferences 请描述Android SDK支持哪些文件存储技术? 1.SharedPreferences保存key-value类型的数据 2.流文件存储(openFileOu ...
- android 文件存储 集合,Android 文件存储的基本使用
在Android中我们大多数情况下我们用的都是绝对路径: 文件存储位置说明: 内部存储不是内存,内部存储位于系统中很特殊的一个位置,当应用被卸载后,内部存储的文件夹也被删除,一个应用所创建的所有文件都 ...
- Android 文件存储-图片存储
因 Android1 1谷歌禁止使用requestLegacyExternalStorage ,故将存储方式分为两种方式来进行文件存储. 存储你的应用打算与其他应用共享的文件,包括媒体.文档和其他文件 ...
- Android文件存储编程实验,Android编程中File文件常见存储与读取操作demo示例
本文实例讲述了Android编程中File文件常见存储与读取操作.分享给大家供大家参考,具体如下: MainActivity文件代码如下: package example.com.myapplicat ...
- android 文件存储基础
要搞清楚文件存储首先需要知道内存 和外存的定义 内存: 在任何时候都是可用的, 默认情况你存储的文件只有你自己的应用可用访问 当用户卸载app时候,系统删除所有内存中保存的文件 外存:不总是可以使用的 ...
最新文章
- 有java基础的人学python_准备自学Python ,会java,有什么建议吗?
- Linux查看CPU信息、机器型号等硬件信息
- MySQL 创建用户与修改密码
- 牛人主页(主页有很多论文代码)【真的好强大】
- 从位图数据取得位图句柄
- 从零开始学习Hadoop--第2章 第一个MapReduce程序
- nodejs模块之event
- iOS开发中常见的一些异常
- java多线程测试性能,总线程使用总时间。
- 计算机考试用户注册,全国计算机等级考试报名系统账号注册和登录
- 使用C语言判断一个数是否为素数
- DSI3协议理论基础讲解
- IDEA使用教程(一) 基础配置
- 【Java】奇偶数判断
- JavaScript三种注释写法
- random模块——随机数常用函数介绍
- 基于MATLAB图像处理
- 解决Unexpected end of JSON input while parsing near的报错问题
- java获取上级菜单_java在多菜单中返回上级菜单如何实现
- 抖音助手,帮您自动切换下一个视频
热门文章
- 怎么读取mysql库绘制柱状图_从数据库中取出最近三十天的数据并生成柱状图
- 30天自制操作系统 pdf_30天自制操作系统:第四天:系统界面绘制
- sizeof 数组_简单的一维数组竟然有这么多坑?
- 电脑上有一个程序一直在按向上_HUAWEI Matebook 九个超牛电脑快捷键
- 农艺师需要职称计算机,2015年农艺师职称计算机考试宝典.doc
- 自己帮别人写的网站可以公开源码吗_雷军靠写代码赚第一个 100 万,马化腾亲自写腾讯网,码农出身的大佬...
- Node Sass does not yet support your current environment
- UNIX网络编程——解决TCP网络传输“粘包”问题
- hibernate添加spring 事务管理注意问题记录
- 很有意思的css口诀