作者:创世魂
● 辅助说明
注意:从安卓10(API29)开始(安卓11彻底禁止),谷歌针对安卓文件系统进行了大修改,逐渐开始禁止软件操作存储卡目录。
其目的是为了规范软件本身文件管理,防止软件滥用文件创建功能和软件隐私保护,防止被第三方不法软件获取软件数据。
所有软件只能操作私有数据目录,对私有目录内容进行读写。
在火山中即使用“取内部私有数据目录()”和“取外部私有数据子目录()”,取出操作目录来进行文件读写操作。
● 首先需要了解一下“状态类”和“文件打开方式”
“状态类”如下图:
打开“状态类”帮助内容,可以看到它有“四个”常量,每个常量代表不同的意思,具体看红色箭头指的位置说明。
常量调用方式“类名.”+“常量名”即可。
“文件打开方式”如下图:
本类也有“四个常量”,具体作用和说明看图上的文字说明。
● 创建方法
如下图:
打开帮助内容,可以看到它有“两个参数”,其中一个参数正是上面提到的“文件打开方式”。
本方法的返回值则是“文件访问类”。
顾名思义:本方法的作用就是创建一个“文件访问类”对象,然后根据这个对象进行各种各样的操作。
如下图:
代码编写也很简单。
“参数一”和“参数二”根据自己的“实际需求”填写自己需要的内容。
注意:“文件打开方式”后面的小数点不要忘记了。
● 创建2方法
如下图:
可以看到它和“创建”不同之处在于,本方法的“参数一”是“文件名类”。
如下图:
代码编写的时候,将“要操作的文件”创建成“文件名类”。
最后把定义的“文件名类”变量,放入“参数1”即可,这就就可以创建一个“文件访问类”出来。
● 读入数据方法
如下图:
可以看到有“五个”参数。
参数一:要操作的“文件访问类”对象。
参数二:用来存储数据的“字节数组”。
参数三:从“字节数组”的哪个位置开始存数据。
参数四:从“文件对象”里面读取多长的数据。
参数五:保存最终读取状态。
如下图:
本代码编写起来较为复杂。
例如:我们要读取一个图片需要这么做。
第一:定义四个变量。
1.文件尺寸变量:用来存储要读入的“文件尺寸”。
2.文件访问类变量:存储“文件访问类”。
3.状态对象:保存最终“状态”。
4.字节数组:临时存放要读入的“文件字节”数组。
第二:首先需要用“文件名类”的“创建”方法,取出“文件尺寸”
(无需定义“文件名类”变量,直接在“创建”最后输入“点”加“方法名”即可),最后赋值给“尺寸”变量。
第三:用“文件访问类”创建一个“文件访问类”变量,因是读入图片,所以“打开方式”选择“只读”就可以了。
第三:我们需要将定义的“字节数组”,创建一个“成员数”(可以理解为容量),这个容量数据就是“强转整数”后的“文件尺寸”。
第四:“读入数据”填写,因为是动态调用,所以“参数一”忽略不写,也“不用逗号”分隔。
参数2:写定义的“字节数组”变量
参数3:完整的读入一个图片,所以这里写“0”。
参数4:输入定义“文件尺寸”变量。
参数5:输入定义的“状态”变量
如果所有操作结束后,注意一定要使用“关闭”方法,将创建的“文件访问”对象关闭。
最后用“图片框”的“置图片数据”方法将“字节数组”载入进来。
运行后如下图:
成功读取“移动后.png”图片,读取状态也提示“成功”。
● 读入数据2方法
如下图:
本方法和“读入数据”的区别就是,本方法少了位置和长度参数。
如下图:
虽然参数少了“两个”,但是代码编写也和“读入数据”基本一致。
唯一不同之处也就是“读入数据2”少写两个参数(红框内),“字节数组”后直接就是“状态对象”。
运行后如下图:
和“读入数据”一样,成功读取。
● 关闭方法
如下图:
顾名思义,就是关闭一个创建的“文件访问类”对象。
当一个“文件访问”操作结束后,必须使用本方法关闭。
● 关闭方法
如下图:
顾名思义,就是关闭一个创建的"文件访问类"对象。
当一个"文件访问"操作结束后,必须使用本方法关闭。
● 取当前读写位置方法
如下图:
顾名思义,判断一个文件的当前“读写”到哪个位置了,返回一个长整数值。
失败会返回给“状态类”对象。
如下图:
代码编写很简单,创建两个变量。
创建“文件访问类”对象,然后有本方法去“读取”文件对象的“读写位置”。
最后“到文本”赋值给“编辑框2”显示出来。
运行后如下图:
因当前没有对“移动后.png”进行任何读写操作,所以“返回0”。
● 取输出对象方法
如下图:
作用就是利用创建的“文件访问类”返回一个“数据输出类”来进行“写文件”操作。
如下图:
例如:我们保存“编辑框2”的内容到“编辑框1”的路径,需要这么写。
创建“三个”如下图所示的变量(注意参考)。
创建“文件访问类”然后用本方法,赋值给“数据输出类”变量。
最后用“数据输出类”的方法“写UTF文本”写“编辑框2”的内容,状态对象写入到第二个参数即可。
如下图:
左图:运行结果成功写出。
右图:文件管理器内也看到了对应的文件。
● 取输入对象方法
如下图:
本方法和“取输出对象”基本一样,不同之处就是本方法返回的是“数据输入类”。
利用“数据输入类”可以进行“读取数据”操作。
如下图:
代码编写和“取输出对象”基本没区别,就是将“数据输出类”改成了“数据输入类” 。
“写UTF文本”改成了“读UTF文本”,最后用“提示信息框”弹出。
运行结果如下图:
成功将“取输出对象”写的文件内容“读取”出来。
● 取文件尺寸方法
如下图:
顾名思义就是取一个“文件访问类”对象的尺寸,返回一个“长整数”值。
如下图:
代码编写也很简单,创建“文件访问类”后,直接用本方法“取文件尺寸”即可,“状态对象”参数有默认值,根据实际需求决定是否填写。
最后“到文本”赋值“编辑框2”即可。
运行结果如下图:
成功取出文件尺寸。
● 置当前读写位置方法
如下图:
顾名思义,就是设置当前“读写位置“,并且返回一个“逻辑值”判断是否设置成功。
如下图:
创建后直接用本方法“置读写位置”即可,这里的参数随意输入了一个“10”,最后也可以用“取当前读写位置”方法判断是否成功。
运行结果如下图:
返回的“当前读写位置”也是“10”,证明写入“位置”成功。
● 置文件尺寸方法
如下图:
通俗理解就是将文件变大,并且不影响文件正常读取!
如下图:
创建“文件访问类”后,用本方法置入一个“100”字节。
随后可以用“取输入对象”的“读utf文本”方法,将文本读取赋值给“编辑框2”显示。
运行结果如下图:
上面我们“取文件尺寸”的时候得知“火山文件.txt”是“29字节”,这里执行“置入尺寸”后依然可以“成功读取”。
右图:“文件管理器”内文件尺寸也变成了“100字节”