数据存储--文件存储
2016-03-27 10:40
411 查看
文件存储
文件存储是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); //load为读取数据的方法 String str=load(); //TextUtils是一个工具类,既可以判断null,也可以同时判断""两种形式的空值 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 { //通过java中的输入流来进行数据的读取,参数即位文件名称 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(); } } } } }
效果图如图所示
相关文章推荐
- Cocos2d-x3.0TestCpp文件夹笔记(二)
- Git指令(不定期更新)
- [BZOJ 4044][Cerc2014]Virus synthesis
- cocos内存管理
- struts2 validate验证失败报错
- Grub详解
- Android性能优化之HashMap的替代者
- Kubernetes1.1源代码分析(一)
- Android多屏幕支持Multi-WindowSupport
- HDU 5652 India and China Origins(并查集)
- 一个有意思的bug
- mac 下安装raspbian
- cocos碰撞检测
- HDU 5652 India and China Origins(并查集)
- Win10 Mobile红石预览版14295上手体验评测
- linux下安装android studio(看到的一些好的链接)
- ios-基础之【11】-类的category
- 数据结构面试题目
- float总结
- Cocos定时器