Android持久化技术之文件存储
来源:互联网 发布:火影手游网络连接异常 编辑:程序博客网 时间:2024/05/18 13:25
Android系统主要提供了3中方式用于简单地实现数据持久化的功能,其中包括文件存储,SharedPreference存储以及数据库存储。这里来看下如何通过文件存储的方式来持久化数据。
首先来看看数据是如何存储到文件中的,将文件存储到文件中主要是通过Context类中的openFileOutput()方法,然后在结合java的流操作将数据存储到指定的文件中的。下面来个案例吧。打开android studio,新建个FilePersistence工程。activity_main.xml代码如下:
<?xml version="1.0" encoding="utf-8"?><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="Please input something here"/></LinearLayout>
布局文件中的代码很简单,就是放了个文本编辑控件。
MainActivity中的代码如下:
package com.tangliang.filepersistencetest;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.EditText;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;public class MainActivity extends AppCompatActivity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText) findViewById(R.id.edit); } @Override protected void onDestroy() { super.onDestroy(); String inputText = edit.getText().toString(); save(inputText); } public void save(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 (IOException e){ e.printStackTrace(); } finally { try{ if(writer != null){ writer.close(); } } catch (IOException e){ e.printStackTrace(); } } }}MainActivity中的代码也比较简单,就是在activity摧毁的时候通过openFileOutput()方法和java流将输入的数据保存到文件中。
这时候运行程序,输入数据,退出应用,通过Android Device Monitor就可以看到程序对应包下的files文件夹下出现了名为data的文件,这是你可以导出文件到电脑上查看是否是你刚才输入的数据。
再来看看如何从文件中读数据吧。其实从文件中读数据和写数据到文件中类似,只是用的不再是openFileOutput()方法了,而是openFileInput()方法。下面将保存的数据从文件中读出来再显示到EditText控件中。
MainActivity代码如下:
package com.tangliang.filepersistencetest;import android.content.Context;import android.support.v7.app.AppCompatActivity;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.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class MainActivity extends AppCompatActivity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText) findViewById(R.id.edit); String inputText = load(); if(!TextUtils.isEmpty(inputText)){ edit.setText(inputText); edit.setSelection(inputText.length()); Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show(); } } public String load(){ FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try{ 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(); } @Override protected void onDestroy() { super.onDestroy(); String inputText = edit.getText().toString(); save(inputText); } public void save(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 (IOException e){ e.printStackTrace(); } finally { try{ if(writer != null){ writer.close(); } } catch (IOException e){ e.printStackTrace(); } } }}
阅读全文
1 1
- android--持久化技术之文件存储
- Android--持久化技术之文件存储
- Android持久化技术之文件存储
- Android之数据持久化技术一(文件存储)
- Android--持久化技术之文件存储-数据读取
- 持久化技术之文件存储
- Android持久化技术之SharedPreferences存储
- android-数据持久化之文件存储
- 浅谈Android的三种数据持久化技术之文件存储
- Android持久化技术——文件存储
- android 持久化技术(一)文件存储
- Android之数据存储——持久化技术
- Android持久化技术之SQLite数据库存储(一)
- Android持久化技术之SQlite数据库存储(二)
- 持久化存储技术之本地存储
- 持久化存储技术之SharedPreferences存储
- Android持久化存储----文件
- Android数据存储的持久化技术
- Python学习-认识python(二)
- 微信小程序笔记
- DOM编程中的对象
- iBatisNet的providers.config的几点实践
- 微信JSSDK生成
- Android持久化技术之文件存储
- 黑客常用术语
- Oracle11g R2 安装
- 基线小结
- Java 正则表达式学习总结和一些小例子
- 数据列表初始化下拉框及下拉树
- js 将json字符串转换为json对象的方法解析
- python增强的格式化字符串format函数
- 接口中的属性