Android数据持久化功能之一:文件存储
来源:互联网 发布:mac os x 开机启动项 编辑:程序博客网 时间:2024/05/18 17:56
数据持久化就是指将那些内存中的瞬时数据保存到持久化设备中(如手机文件、数据库等),当关机,停电后,数据不丢失。
Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是:
1、文件存储
2、SharedPreference 存储
3、数据库存储。
今天我们学习第一种存储方式:文件存储。
使用范围:文件储存适合用于存储一些简单的文本数据或二进制数据。
没有理论,直接上代码:
效果图如下:
activity_main.xml 中的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入内容" /> <Button android:id="@+id/saveInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存信息" /> <Button android:id="@+id/loadInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取保存的信息" /></LinearLayout>
MainActivity 中的代码:
package com.demo.filepersistencedemo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private EditText edit;private Button save;private Button loadInfo;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);edit = (EditText) findViewById(R.id.edit);save = (Button) findViewById(R.id.saveInfo);loadInfo = (Button) findViewById(R.id.loadInfo);save.setOnClickListener(this);loadInfo.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.saveInfo:// 获得edit中输入的值String inputText = edit.getText().toString();// 将输入框中的值存入file文件中save(inputText);edit.setText("");//清空刚刚输入的信息break;case R.id.loadInfo:String str = load();if (!TextUtils.isEmpty(str)) {edit.setText(str);edit.setSelection(str.length());Toast.makeText(this, "信息获取成功", Toast.LENGTH_SHORT).show();}break;default:break;}}@Overrideprotected void onDestroy() {super.onDestroy();// 活动销毁之前,获得edit中输入的值String inputText = edit.getText().toString();// 将输入框中的值存入file文件中save(inputText);}/** * @param inputText * 将输入框中值保存到文件中 保存方式:文件存储 */public void save(String inputText) {FileOutputStream out = null;BufferedWriter writer = null;try {/** * Context类中提供了openFileOutput(String name, int * mode)方法,实现将数据存储到指定的文件中的功能。 该方法中有两个参数,分别是: * 1、第一个参数name是文件名,这个文件名不可以包含路径, 因为所有的文件都是默认存储到/data/data/<package * name>/files/ 目 录下 的 2、第 二 个 参数 mode是 文件 的 操作 模 式 ,主 要 有两 种 模式 可 * 选: a、MODE_PRIVATE:默认操作模式,文件名相同时,写入的新内容会覆盖原有内容,不存在就创建新文件。 * b、MODE_APPEND:文件名相同时,写入的新内容追加到原有内容后面,不存在就创建新文件。 */out = openFileOutput("data", Context.MODE_APPEND);// 这里使用追加的方式writer = new BufferedWriter(new OutputStreamWriter(out));writer.write(inputText);} catch (IOException e) {e.printStackTrace();} finally {try {if (writer != null) {writer.close();}} catch (IOException e) {e.printStackTrace();}}}/** * @return 保存到文件中的字符串 获得保存到文件中的字符串信息 */public String load() {FileInputStream in = null;BufferedReader reader = null;StringBuilder content = new StringBuilder();try {/** * Context类中提供了一个 openFileInput(String name)方法,用于从文 件中读取数据。 * 它只接收一个参数:要读取的文件名, * 然后系统会自动到/data/data/<package name>/files/目录下去加载这个文件, 并返回一个 * FileInputStream 对象,得到了这个对象之后再通过 Java 流的方式就可以将数据读取出来了 */in = openFileInput("data");reader = new BufferedReader(new InputStreamReader(in));String line = "";while ((line = reader.readLine()) != null) {content.append(line);}} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}return content.toString();}}
下载项目:
Android文件存储demo下载 点这里
eclipse中查看file保存的位置,如图:
导入到电脑上的值,如图:
0 0
- Android数据持久化功能之一:文件存储
- android-数据持久化之文件存储
- android数据存储:数据持久化的文件存储
- Android数据持久化存储
- Android数据持久化存储
- Android实现数据持久化的文件存储
- Android之数据持久化技术一(文件存储)
- Android--持久化技术之文件存储-数据读取
- Android 数据持久化方式(1)文件存储
- Android持久化存储----文件
- Android--数据存储(数据持久化)
- Android数据持久化数据存储
- 数据持久化之文件存储读取
- 十二.Android数据持久化方法之一——文件保存
- android的数据持久化功能
- Android的数据持久化存储
- Android数据持久化存储-SharedPreferences
- Android数据持久化存储-Files对象
- 银联在线支付接入总结
- 【Python】用zip函数求欧氏距离、余弦相似度
- 《leetCode》:Word Search
- 用lambda作为函数的指针
- Java基础概要(一)
- Android数据持久化功能之一:文件存储
- 1047. Student List for Course (25)
- Volley上传文件
- crash reporting
- google material design ( 1 )
- 转载Python学习笔记
- toolbar的使用
- make
- duplicate symbols for architecture x86_64