版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangxuewei111/article/details/45480077
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;
@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 successeded", Toast.LENGTH_SHORT).show();
}
}
@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 {
/*
*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文件