一、读取文件
1.读取文件
- 我们的APP在重新启动程序的时候EditText能够从系统中获取数据,修改
MainActivity
中的代码
public class MainActivity extends Activity {
private EditText edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
...........................
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(Exception e) {
e.printStackTrace();
}
}
}
return content.toString();
}
...............................
- 编辑一个load方法,用于读取app内存储的数据,如果读到的内容不为空,就调用setText方法,把内容放到EditText中,然后调用setSelection方法将输入的光标移动到文本的末尾位置以便于再次输入,然后弹出一个“还原成功”,
- 注意:判断字符串非空的时候使用了TextUtils.isEmpty()方法,这个方法同时对null和空字符串都进行了判断
- 输入一段文字之后,然后点击退出键,再进入这个APP的时候,就会把之前的内容填充进去。
- 该方法不适合存储复杂的数据,因此我们看一下另一种方法。
二、SharedPreference存储
- SharedPreferece使用键值对进行存储数据。
1.使用方法
- 获取SharedPreference对象,android提供了三种方法
- Context类中的getSharedPreference方法
- 该类接收两个参数,第一个是指定SharedPreference文件的名称,文件存放于
/data/data/<packagename>/shared_prefs/
目录下;第二个参数用于指定操作模式,主要由两种模式可以选,MODE_PRIVATE和MODE_PROCESS。第一个是默认操作,和传入0差不多,表示只有当前程序可以对这个SharedPreferece文件进行读写,第二个一般用于会有多个进程中对同一个SharedPreference文件进行读写的情况。
三、源码: