您的位置:首页 > 其它

文件存储

2016-03-06 17:00 399 查看
一EditText输入内容,返回键退出再进入还呈现内容,用的文件存储

public class MainActivity extends ActionBarActivity {

private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

editText = (EditText) findViewById(R.id.et_content);

String inputText = load();
if (!TextUtils.isEmpty(inputText)) {
editText.setText(inputText);
editText.setSelection(inputText.length());//移到文末
Toast.makeText(this, "Restoring successed", Toast.LENGTH_SHORT).show();
}
}

@Override
protected void onDestroy() {
super.onDestroy();
String inputText = editText.getText().toString();
save(inputText);
}

private 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) {//循环读出字符流到line,再添加给缓冲对象
content.append(line);
}

} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content.toString();//返回字符
}

private void save(String inputText) {
FileOutputStream out = null;
BufferedWriter writer = null;

try {
out = openFileOutput("data", MODE_PRIVATE);//打开到达文件地址的字节输入流

writer = new BufferedWriter(new OutputStreamWriter(out));//到文件地址的字符输入流

writer.write(inputText);//把字符传个这个字符输入流就可以把字符送进文件中了
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: