Android中的Context类提供了 openFileOutput ()方法,可以将数据保存到文件中;Context类中还提供了一个 openFileInput()方法,用于从文件中读取数据。
下面是数据保存和读取的小demo。
1、activity_main.xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something here"/>
</LinearLayout>
2、保存文件的核心代码
private void save(String str) {
// TODO Auto-generated method stub
FileOutputStream out = null;
BufferedWriter writer = null;
try{
out = openFileOutput("data",Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(str);
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if (writer != null) {
writer.close();
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
3、读取文件:
private String load() {
// TODO Auto-generated method stub
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();
}
4、在onDestroy()方法中,用户点击返回键时保存输入的数据。
@Override
protected void onDestroy() {
super.onDestroy();
String str = edit.getText().toString();
save(str);
}