各位看官们大家好,上一回中咱们说的是Android中数据存储概述的例子,这一回咱们说的例子是数据存储之文件。闲话休提,言归正转。让我们一起Talk Android吧!
看官们,我们在这一回中介绍文件这种数据存储方式。文件存储的内容,我们可以使用Java提供的API来进行,下面是向文件写入内容的操作步骤,请大家参考:
- 1.获取文件写权限,在代码进行申请,同时需要在配置文件中添加权限声明;
//在manifest文件中添加文件读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//读写文件需要先申请权限
public void requestPermisson() {
if(ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "requestPermisson: ");
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}else {
WriteDataByJava();
}
}
//用户选择权限后,对选择做处理
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 1) {
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "onRequestPermissionsResult: Permission approved");
WriteDataByJava();
}else {
Log.i(TAG, "onRequestPermissionsResult: Permission denied");
Toast.makeText(getApplicationContext(),"Permission denied",Toast.LENGTH_LONG).show();
}
}
}
- 2.定义一个文件名称,名称中需要包含文件所在的路径,不然无法存放;
- 3.使用步骤2中的文件名创建一个File类型的对象;
- 4.使用File对象创建一个空的文件;创建前需要判断文件路径是否存在,如果存在就创建文件,否则不创建文件;
- 5.使用File对象创建输出流,注意处理异常;
- 6.把输出流转换为可以输出的缓冲流;
- 7.使用缓冲流的write方法把内容写入文件;注意,该方法是重载方法,可以把多种类型的数据写入文件,我使用了简单的String类型;
- 8.关闭缓冲流,关闭也要处理异常。关闭操作可以放在上一步骤的终结器(finally)中显得代码整洁;
看官们,为了代码整洁,我们把步骤2到8的内容都放到了一个方法中,下面是该方法的代码,请大家参考:
public void WriteDataByJava(){
File file = new File(mFileName);
String content = "Hello";
FileOutputStream outputStream = null;
BufferedWriter bufferedWriter = null;
Log.i(TAG, "WriteDataByJava: ");
//检查文件路径是否已经存在,如果存在就创建文件
if(file != null && file.getParentFile() != null) {
if (file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
}else {
Log.i(TAG, "WriteDataByJava: File Created Failed");
return;
}
try {
outputStream = new FileOutputStream(file);
}catch (IOException e) {
e.printStackTrace();
}
//通过输出流给文件写入内容
if(outputStream != null) {
bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
try {
bufferedWriter.write(content);
}catch (IOException e) {
e.printStackTrace();
}finally {
if(bufferedWriter != null) {
try {
bufferedWriter.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
各位看官,关于Android中数据存储之文件的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!