在内部存储空间中读写文件
小案例:用户输入账号密码,勾选“记住账号密码”,点击登录按钮,登录的同时持久化保存账号和密码
1. 定义布局
2. 完成按钮的点击事件
弹土司提示用户登录成功
Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
3. 拿到用户输入的数据
判断用户是否勾选保存账号密码
CheckBox cb = (CheckBox) findViewById(R.id.cb); if(cb.isChecked()){ }
4. 开启io流把文件写入内部存储
直接开启文件输出流写数据
//持久化保存数据 File file = new File("data/data/com.exp.rwinrom/info.txt"); FileOutputStream fos = new FileOutputStream(file); fos.write((name + "##" + pass).getBytes()); fos.close();读取数据前先检测文件是否存在
if(file.exists())读取保存的数据,也是直接开文件输入流读取
File file = new File("data/data/com.exp.rwinrom/info.txt"); FileInputStream fis = new FileInputStream(file); //把字节流转换成字符流 BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String text = br.readLine(); String[] s = text.split("##");读取到数据之后,回显至输入框
et_name.setText(s[0]); et_pass.setText(s[1]);- 应用只能在自己的包名目录下创建文件,不能到别人家去创建
直接复制项目
- 需要改动的地方:
- 项目名字
- 应用包名
- R文件重新导包
使用路径api读写文件
- getFilesDir()得到的file对象的路径是data/data/com.exp.rwinrom2/files
- 存放在这个路径下的文件,只要你不删,它就一直在
getCacheDir()得到的file对象的路径是data/data/com.exp.rwinrom2/cache
- 存放在这个路径下的文件,当内存不足时,有可能被删除
系统管理应用界面的清除缓存,会清除cache文件夹下的东西,清除数据,会清除整个包名目录下的东西
这篇博客介绍了如何在Android应用的内部存储空间中进行文件读写操作。通过一个小案例展示了用户登录时如何保存并读取账号密码。内容包括定义布局、处理按钮点击事件、获取用户输入数据以及使用IO流写入和读取文件。强调了应用只能在自己的包名目录下创建文件,并提到了getFilesDir()和getCacheDir()两个API的使用及其区别。
9257

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



