文件读写操作类操作实例讲解

作者:创世魂

 

● 辅助说明

注意:从安卓10(API29)开始(安卓11彻底禁止),谷歌针对安卓文件系统进行了大修改,逐渐开始禁止软件操作存储卡目录。

其目的是为了规范软件本身文件管理,防止软件滥用文件创建功能和软件隐私保护,防止被第三方不法软件获取软件数据。

所有软件只能操作私有数据目录,对私有目录内容进行读写。

在火山中即使用“取内部私有数据目录()”“取外部私有数据子目录()”,取出操作目录来进行文件读写操作。

 

● 文件操作准备工作

 

本类需要设计一个如下图所示的APP界面。

从上到下依次是“编辑框1”“编辑框2”“按钮1”“图片框1”

 

如下图:

我们右键“窗口”选择“添加虚拟方法”,打开“启动类”窗口的所有的“窗口事件”

 

 

如下图:

打开后选择“通知_被创建”,点击“添加”

 

 

如下图:

点击后出现下图的“通知_被创建”方法。

1.创建一个“文件名类”的局部变量(名称随意),注意参考属性不要忘记。

2.利用“取外部存储空间根目录”的方法,获取到存储卡的“文件名类”,并且赋值给定义的“文件名类”变量。

3.用定义的“变量”的取文件名方法,把“文件名”类转换成“文本型”的路径形式,这样就可以取出“存储卡”

存储用户数据的路径(也就是打开手机文件管理器的默认路径),把取出来的路径放到“编辑框”显示出来,方便接下来的操作。

注意:建议“取文件名”结尾加上一个“/”,默认取出的“路径”是没有这个“/”的。

再次注意: 软件通常操作的“目录”均是“外部存储空间根目录”

如果需要操作安卓“内部数据”目录,则手机需要获取“Root权限”才可以操作。

 

 

 

一、文件读写操作类

 

● 创建子目录

 

如下图:

打开帮助内容,可以看到“创建子目录”有一个“目录名”参数和一个“逻辑”返回值。

 

 

如下图:

直接将“编辑框”的内容写入“参数”,用“如果”命令判断是否创建成功。

注意:如果目标“目录”存在也会返回假。

 

 

如下图:

调试运行后,我们在“数据路径”后输入要创建的“目录名”“左图”创建成功,“右图”重复第二次创建“返回假”

 

      

 

如下图:

打开手机“文件管理器”,也可以看到我们创建的“目录”

 

 

● 读入文本文件方法

 

如下图:

打开帮助内容可以看到有“两个”参数和一个“文本”返回值。

注意:提前准备一个txt“文本文件”,放入“火山软件”文件夹内。

 

 

如下图:

直接读取“编辑框1”作为“参数1”,参数二里面直接放文件对应的“文编编码”即可,最后让“文本内容”赋值给“编辑框2”显示即可。

因我放的"文件编码"是"GBK"的,所以这里我用的是"GBK编码",安卓通常情况下使用的是“UTF-8”编码。

 

 

如下图:

运行后“编辑框2”成功读取提前放置的“文本文件”

 

 

● 读入文本文件行方法

 

如下图:

打开帮助内容,可以看到“读入文本文件行”有两个和“读入文本文件”一样参数,不同之处就是这里的返回值是“文本数组”

从名称可以看出它返回的是“文本文件”内容行的文本数组类。

注意:可以提前在“文本文件”内多输入几行文本。

 

 

如下图:

定义“两个”局部变量,保留“读入文本文件”代码,放下对比。

“读入文本文件行”方法直接赋值给定义的“文本数组变量”

用定义的变量名称的“取成员数”方法,取出数组数量然后赋值给“成员数”变量,最后“到文本”转换提供给信息框显示。

 

 

如下图:

调试运行后效果如下,成功的判断“文本文件”内的行数。

 

 

● 读入文件方法

 

如下图:

打开帮助内容可以看到,该方法只有一个“文本型”的文件名参数和一个“字节数组”返回值。

备注:提前准备一张“图片”放到“火山软件”文件夹内。

 

 

如下图:

定义一个“字节”数组变量,然后“读入文件”方法给变量赋值,最后使用“图片框”“置图片数据”的方法加载“字节变量”“图片框1”

 

 

如下图:

编译运行后,成功取出了提前放好的一张“png”图片。

 

 

● 复制文件方法

 

如下图:

打开帮助内容可以看到“复制文件”有两个“文本参数”和一个是否覆盖的“逻辑参数”,复制成功返回“真”,失败返回“假”

 

 

如下图:

参数“1和2”直接填写“编辑框1和2”的内容,“参数3”这里就填写“真”(根据实际需求正确填写)

 

 

如下图:

运行后在“编辑框2”也放上存储卡“路径”,并且输入上对应的目录名和“复制后文件名”

“左图:”提示复制成功。“右图:”文件管理器内也成功显示。

 

      

 

● 删除文件方法

 

如下图:

打开帮助内容可以看到“删除文件”方法只有一个“文本参数”和一个“逻辑返回值”

“注意:”红框内的提示,如果要“删除目录”,必须保证“目录”内是“空的”

 

 

如下图:

代码编写也很简单,直接把“编辑框1”放到“参数1”内,运行后在“用户数据目录”的基础上增加你想要删除的“目录”或者“文件名”即可。

 

 

如下图:

运行后我们可以删除掉,刚才的“复制版文本文件”“左图”提示删除成功,“右图”文件管理器也成功消失。

 

      

 

如下图:

如果我们删除“火山软件”目录,则会提示“删除失败”,因为“目录内存在内容”

 

 

● 文件是否存在方法

 

如下图:

打开帮助内容我们可以看到有一个“文本参数”和一个“逻辑”返回值。可以判断“文件”或者“目录”是否存在。

 

 

如下图:

代码编写,直接将“编辑框1”的内容放到“参数1”中,然后用“如果”命令判断该方法返回的“逻辑值”,如果等于“真”则提示“存在”,否则相反。

 

 

如下图:

左图:判断“火山软件”目录会提示“存在”。右图:我们随便输入一个名字,就会提示“不存在”

 

      

 

● 写出文本文件方法

 

如下图:

打开帮助内容可以看到“写出文本文件”有两个“文本参数”,一个是否覆盖的“逻辑参数”和一个“文本编码参数”,最后也是返回的“逻辑值”

 

 

如下图:

代码编写非常简单,直接“编辑框1和2”的内容写到“参数1和2”,覆盖填写“真”

要注意的是,最后的“编码”建议填写“UTF8编码”

还有,必须保证“目录正确”并且“目录存在”才能成功“写出文本文件”

 

 

如下图:

左图:路径正确“成功写出”。右图:输入了一个“不存在”的目录,会“无法保存”

 

      

 

如下图:

打开文件管理器就可以看到我们新写的文件了。

 

 

● 写出文本文件行方法

 

如下图:

打开帮助我们可以看到该方法和“写出文本文件”一样,有四个参数,不同之处就是这里保存的是“文本数组类”

 

 

如下图:

我们这里可以用“读入文本文件行”的方法,来读取一个“文件数组类”的变量。

然后将定义的变量填入“写出文本文件行”“参数2”中(这里的编码,必须和上面的一致)。

最后用“如果”来判断“写出文本文件”“返回值”即可。

 

 

如下图:

左图:提示成功。右图:文件管理器也成功显示。

 

      

 

● 写出文件方法

 

如下图:

打开帮助内容可以看到“写出文件”方法只有“三个参数”和一个“逻辑返回值”

 

 

如下图:

定义一个“字节数组”变量,使用“文本到字节数组”方法,将“编辑框2”的内容转换赋值给定义的“字节数组变量”

“写出文件”参数一直接依然还是“编辑框1”的内容,参数二放入“字节数组变量”“参数三”根据实际需求填写。

 

 

如下图:

左图:执行后“保存”成功。右图:文件管理器内也看到了对应的文件。

      

 

● 重命名文件方法

 

如下图:

打开帮助内容可以看到“重命名”“两个参数”,并且也同样支持重命名“文件和目录”

 

 

如下图:

代码编写,直接将“编辑框1”“编辑框2”的内容填入参数即可,实际应用过程中,填入自己需要“重命名”的文件或者目录的路径。

 

 

如下图:

左图:将“火山软件”目录,成功的重命名为“火山软件开发平台”

右图:文件管理器内也发生改变,证明重名成功。