【android学习笔记三】数据持久化
π大星
发表于
2020-02-16 07:16
2806
学习笔记
android
数据持久化
向本地目录中写入文件
//path = "/data/data/com.zhangtao.androidlearndemo/data.txt"该应用的文件目录
FIle file = new File(path);
try{
if(!filePath.exists()){
filePath.createNewFile();
}
FileOutputStream out = new FileOutputStrea(filePath);
out.write(("写入内容").getBytes());
out.close();
}catch (Exception e){
e.printStackTrece();
}
获取保存路径
this.getFilesDir();//返回该应用的files路径:/data/user/0/cosm.zhangtao.androidlearndemo/files
this.getCacheDir();//返回该应用的cahe路径
输入合法性检查
- 输入判空
- 方式一:
//检查输入合法性
if(Info.length() == 0){
Toast.makeText(this, "账号不得为空!", Toast.LENGTH_SHORT).show();
return;
}
if(psd.length() == 0){
Toast.makeText(this, "密码不得为空!", Toast.LENGTH_SHORT).show();
return;
}
方式二:
//另一种方式:
if( TextUtils.isEmpty(Info)){
Toast.makeText(this, "账号不得为空!", Toast.LENGTH_SHORT).show();
return;
}
if(TextUtils.isEmpty(psd)){
Toast.makeText(this, "密码不得为空!", Toast.LENGTH_SHORT).show();
return;
}
读取保存的数据
try{
FileInputStream in = this.openFileInput("data.text");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
String result = bufferedReader.readLine();
resultShow.setText("result:"+result);
Log.d("TEST","文件读取结果:" +result);
}catch (Exception e){
e.printStackTrace();
}
将数据保存到SD卡
- 获取SD卡的路径和状态
//路径
File exFile = Environment.getExternalStorageDirectory();
//状态
String state = Environment.getExternalStorageState();
Log.d("Study",exFile.toString())
- 获取SD卡的存储空间信息
File exF = Environment.getExternalStorageDirectory();
long freeSize = exF.getFreeSpace();//剩余空间大小
long totalSize = exF.getTotalSpace();//总空间大小
//利用formatter转换数据,使数据更简洁清晰
String strFreeSize = Formatter.formatFileSize(v.getContext(),freeSize);
String strTotalSize = Formatter.formatFileSize(v.getContext(),totalSize);
String result = "SD卡信息:"+ strFreeSize + "/" + strTotalSize;
SharePreference
- 使用步骤
- 声明该对象
- 设置该对象的名字和模式
- 获取该对象的编辑对象 | 读取该对象对应key的值
- 编辑对象的值
- 提交修改
//1.创建sharedpreference对象
SharedPreferences mSharePreference;
//2.设置名字和模式
mSharePreference = this.getSharedPreferences("setting_info", MODE_PRIVATE);
//3.1获取指定key的值---如果没有则返回默认值
boolean check = mSharePreference.getBoolean("set_Share",false);
//3.2获取该对象的编辑对象
SharedPreferences.Editor editor = mSharePreference.edit();
//4.编辑该对象
editor.putBoolean("set_Share", isChecked);
//5.编辑完成后提交,保存数据
editor.commit();