android-数据持久化之文件存储

来源:互联网 发布:电影淘宝的戒指 编辑:程序博客网 时间:2024/05/02 20:26

1.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="数据存储"        /></LinearLayout>

2.MainActivity.java

package com.king.filepersistencetest;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;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.text.TextUtils;import android.view.Menu;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {private EditText edit;@Overrideprotected 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 successeded", Toast.LENGTH_SHORT).show();}}@Overrideprotected void onDestroy() {super.onDestroy();String inputText = edit.getText().toString();save(inputText);}public void save(String inputText){FileOutputStream out = null;BufferedWriter writer = null;try {/* *openFileOutput第一个参数是存储的文件名(默认存储路径/data/data/<packagename>/files目录下>) *第二个参数是文件操作模式,MODE_PRIVATE:默认操作模式,表示当制动同样文件名的时候,所写入的内容将会覆盖原文件中的内容 *MODE_APPEND:表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件。 *  * openFileOutput返回的是一个FileOutputStream对象,得到了这个对象之后就可以使用java流操作 */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 (Exception e) {e.printStackTrace();}}}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 (Exception e) {e.printStackTrace();}finally{if(reader != null){try {reader.close();} catch (Exception e) {e.printStackTrace();}}}return content.toString();}}

3.找到你的data文件

然后切换到DDMS视图,并点击File Explorer切换卡,在这里进入到/data/data/com.king.filepersistencetest/files目录下,可以看到生成了一个data文件

0 0