文件存储
- 文件存储是android中最简单的数据存储手段,,其中所用到的核心技术就是Content类中提供的openFileOutput和openFileInput方法,之后就是使用java中各种输入输出流来进行读写操作
- 这种方式存储的数据/data/data/<包名>/files目录下
- openFileOutput(参数1,参数2)
- 参数1为你要存储数据的文件名称
- 参数2为存储的模式,有两种MODE_PRIVATE覆盖存储,每次都重写文件,删除之前的内容,MODE_APPEND追加存储,表示在文件中继续填写内容
- 具体实现代码如下:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText editText;
private Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
button.setOnClickListener(this);
String str=load();
if (!TextUtils.isEmpty(str)){
editText.setText(str);
editText.setSelection(str.length());
Toast.makeText(MainActivity.this, "恢复文本成功", Toast.LENGTH_SHORT).show();
}
}
private String load() {
BufferedReader br=null;
StringBuffer content = new StringBuffer();
try {
br=new BufferedReader(new InputStreamReader(openFileInput("mydata")));
String line=null;
while((line=br.readLine())!=null){
content.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content.toString();
}
private void init() {
editText= (EditText) findViewById(R.id.editText);
button= (Button) findViewById(R.id.button);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
saveText();
Toast.makeText(MainActivity.this, "保存完毕", Toast.LENGTH_SHORT).show();
break;
}
}
private void saveText() {
String text=editText.getText().toString();
BufferedWriter out = null;
try {
out=new BufferedWriter(new OutputStreamWriter(openFileOutput("mydata",MODE_PRIVATE)));
out.write(text);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (out!=null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
- 效果图如图所示
![这里写图片描述](https://img-blog.csdn.net/20160327103917729)