将数据写入文件
public class MainActivity extends AppCompatActivity {
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText)findViewById(R.id.edittest);
}
@Override
protected void onDestroy(){
super.onDestroy();
String inputtext = editText.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);
//Context类提供了openFileOutput()方法,用于将数据存储到指定的文件中
//文件命名为data MODE_PRIVATE:覆盖原内容 MODE_APPEND:追加内容
} catch (IOException e) {
e.printStackTrace();
}finally {
try{
if(writer!=null)
writer.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
从文件读取数据
实例:重新启动时仍保留上次输入的内容
public class MainActivity extends AppCompatActivity {
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText)findViewById(R.id.edittest);
String inputtext = load();
if(!TextUtils.isEmpty(inputtext)){
editText.setText(inputtext);
editText.setSelection(inputtext.length());
//如果读到的内容不为空,就调用EditText的setTest()方法将内容填充到EditText中
//将输入光标移动到末尾位置以便继续输入他,然后弹出一个还原成功的提示。
Toast.makeText(this,"Restoring succeesed",Toast.LENGTH_LONG).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 = "";
if((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();
}
}