作业一:
准备工作:打开虚拟机,创建新的作业工程
第一步:完成布局
- 分析主题(黑色 DayNight.DarkActionBar)和标题(SaveInFile)
- 所有的string资源文件编写
- 整体用线性布局,里面有垂直的5行(1垂直、4水平)
第二步:完成Internal存储
- 为button添加click事件,为其创建方法
- 获取两个EditText,并将其内容保存在string中
- 创建对象输出流FileOutputStream
- 写文件并处理异常
- 用Toast作出提示
6、如何获取文件所在的绝对路径 getFilesDir()
7、理解
第二步:完成External存储
- 给应用一个外部存储的访问权限
- 校验外部存储是否可用
因为外部存储区可能不可用,所以需要通过一些方法获取外部存储区的状态,看是否等于MEDIA_MOUNTED(判断是否可写)
代码如下:
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
- 保存文件到公共目录
在External存储区保存public文件,使用getExternalStoragePublicDirectory()方法获取一个外部存储对象到目录
- 保存文件到外部目录区中
先为空间添加Onclick方法
先判断外部目录是否可写,
创建一个文件夹目录对象
返回值是file,那么创建的是一个目录吗?(查用file对象创建文件夹目录)
然后获取文件名和文件内容
根据获取到的文件名创建一个文件
创建文件的输出流,并赋予初始值
开始写入内容并处理异常
写入完后关闭流,并给予提示
- 读文件的时候要
先找到目录、文件名、创建读写流中的InputStream
然后根据.available()方法,判断其大小,然后创建一个Buffer Byte[]数组
开始读文件读到buffer中、读完后关流
把读到的东西放入Content中要用new String(Buffer)
作业二(共享首选项实现文件的存入)
- 作业的效果图如下:
1、了解SharedPreferences是什么
SharedPreferences是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对方式,类似 于Java的Properties类,二者都是把Key-Value的键值对保存在配置文件中。不同的是Properties的文件内容是 Key=Value这样的形式,而SharedPreferences的存储介质是符合XML规范的配置文件。保存SharedPreferences 键值对信息的文件路径是/data/data/应用包名/shared_prefs/文件名.xml。