保存代码
public class MainActivity extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText= (EditText) findViewById(R.id.edit_text);
String string=load();
if (!TextUtils.isEmpty(string)){
editText.setText(string);
editText.setSelection(string.length());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
save(editText.getText().toString());
}
private void save(String string){
FileOutputStream mFileOutputStream;
BufferedWriter mBufferedWriter=null;
try{
mFileOutputStream=openFileOutput("data.txt", Context.MODE_PRIVATE);
Writer mWriter=new OutputStreamWriter(mFileOutputStream);
mBufferedWriter=new BufferedWriter(mWriter);
mBufferedWriter.write(string);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (mBufferedWriter!=null)
mBufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private String load(){
FileInputStream mFileInputStream;
BufferedReader mBufferedReader=null;
StringBuilder mStringBuilder=new StringBuilder();
try {
mFileInputStream=openFileInput("data.txt");
mBufferedReader=new BufferedReader(new InputStreamReader(mFileInputStream));
//注意这里的代码控制
String line;
while ( ( line=mBufferedReader.readLine() ) !=null){
mStringBuilder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (mBufferedReader != null) {
try {
mBufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return mStringBuilder.toString();
}
}
文件流的操作要依赖于缓存,类似于单片机的UART,而文件流的制作依赖于Context类的openFileOutput方法和openFileInput方法