这个星期公司没啥事情可做,闲的没啥事做!又温习了一遍数据存储方面的基础东西。
写的东西的效果就是 ,第一次在editText上面输入了数据,在销毁的时候并保存了数据,然后在第二次进来的时候,读取先前的数据,并显示出来!直接上代码,代码上面有注释
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText) findViewById(R.id.edit);
String load = load();
if(!TextUtils.isEmpty(load)) {
mEditText.setText(load);
/**
* 将光标移到末尾,以便继续输入*/
mEditText.setSelection(mEditText.length());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//保存数据
save(mEditText.getText().toString());
}
//保存数据
private void save(String data) {
FileOutputStream out = null;
BufferedWriter writer = null;
try {
/**
* "dataFile" 表示保存数据的文件名(在读取数据时,也是根据文件名去读取的),并且
* 文件默认存储的路径在 /data/data/<packagename>/File下
* Context.MODE_APPEND 表示文件名如果存在,就往里面追加内容,不纯在就创建新的文件
* Context.MODE_PRIVATE 表示指定同样的文件名时,所写入的内容会覆盖原文件内容
*
* 要查看里面的文件的时候,需要点击as导航栏中的Tools-->Android-->Android Device Monitor
* 并在File Explorer标签页下,按照以前的路径即可找到,最后在导出到电脑查看
* */
out = openFileOutput("dataFile", Context.MODE_APPEND);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (writer != null){
writer.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
//读取数据
private String load(){
FileInputStream inputStream = null;
BufferedReader bufferedReader = null;
StringBuilder builder = new StringBuilder();
try {
inputStream = openFileInput("dataFile");
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line ;
while ((line =bufferedReader.readLine())!= null ){
builder.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try{
if(bufferedReader != null) {
bufferedReader.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return builder.toString();
}
}
以上:
1498

被折叠的 条评论
为什么被折叠?



