【Android】文件存储

正文索引 [隐藏]

我们这边还是只说知识点,不说业务逻辑,我们先在xml里面创建一个EditText
1
我们还是先说存储

存储

我们来自己写个存储的函数

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);
}
catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(writer != null){
writer.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}

因为我们没有设置例如按回车键保存/按钮保存,所有我们改写返回桌面,也可以说退出APP时保存文件
 //返回桌面时存储数据文件
@Override
protected void onDestroy() {
super.onDestroy();
//将数据存到inputText里面
String inputText = edit.getText().toString();
//保存数据
save(inputText);
}

自己在文本框里面输入后,返回到桌面,如果不放心是否退出了APP,可以清除一下后台,我们怎么查看呢,我们可以用Android Studio自带的文件查看,然后就可以看到一个自己命名好的data的文件了。
1
我们现在保存了,但是怎么一打开就加载呢,我们还是自己写个函数

读取文件

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 = "";
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();
}

然后去onCreate里面调用加载
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText) findViewById(R.id.edit); //存储
//读取
String inputText = load();
if(!TextUtils.isEmpty(inputText)){
edit.setText(inputText);
edit.setSelection(inputText.length());
Toast.makeText(this,"Restoring succeeded",Toast.LENGTH_LONG).show();//如果加载成功就弹出消息
}

然后只要一打开,就会自动补充到本文框里面

blank