本帖最后由 创世魂 于 2018-12-25 09:52 编辑
文件操作实例讲解(建议依次仔细观看)
java基本类说明:在安卓中有两种类,一个是基于java的,例如:文本操作属于“java.lang.String” (严格来说这个叫包名)
另外一种是安卓类,例如:android.***** (严格来说这个也叫包名)
作者:创世魂
● 文件操作准备工作
本类需要设计一个如下图所示的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”的内容填入参数即可,实际应用过程中,填入自己需要“重命名”的文件或者目录的路径。
如下图: 左图:将“火山软件”目录,成功的重命名为“火山软件开发平台” 右图:文件管理器内也发生改变,证明重名成功。
二、文件名类
本类所有方法的调用,必须用“文件名类.方法名”或者定义一个类型为“文件名类”的变量,然后用“变量名.方法名”的形式调用。
● 创建方法
如下图: 打开帮助内容,可以看到"创建"有一个"文件名"参数和一个"文件名类"的对象返回值。 顾名思义,就是创建指定文件名的文件对象。
如下图: 可以定义一个“文件名类变量”,然后用“文件名类.创建()”方法给变量赋值,参数直接写“编辑框1”的内容。 可以利用定义的“文件名类变量”的“取文件名”方法取出“文件名类”对象中存储的“文件”或“目录”的路径。 注意:定义的“文件名类变量”一定要设置“参考”属性。 注意黄色箭头:用“变量类”访问类方法的时候,“取文件名”的“参数1文件名类”不用写。
如下图: 运行后我们输入“火山软件开发平台”这个目录,执行后成功的创建“文件类”,并且也成功的利用“取文件名”方法将创建的其取出。 注意:输入的目录内,有结束的“路径符号",但是创建“文件名类”后重新取出后“路径符号”会消失。
● 创建2方法
如下图: 打开帮助内容,可以看到"创建2"有两个“文本型参数”和一个“文件类”的返回值。 顾名思义就是创建一个带“父目录名”的“文件类”对象。
如下图: “编辑框1”窗口创建的时候取的是“存储数据”路径,所以它可以当父路径,直接把“编辑框1”写入“参数1”即可。 "参数2"直接写"编辑框2"的内容即可。
如下图: 运行后在“编辑框2”输入一个“文件名”,执行后成功将“父目录”和“文件名”合并了起来。
● 创建3方法
如下图: 打开帮助内容,该方法和“创建2”没什么区别,唯一不同之处就是,参数一变成了“文件类”对象。
如下图: 创建“两个”文件名类的变量,其中一个命名为“父目录对象”,另外一个依然可以命名“文件名类变量” 利用“创建”方法,创建“编辑框1”的内容为“文件名类”并且赋值给“父目录对象”的变量。 随后将“父目录对象”填入“创建3”的“参数1”即可,“参数2”依然写“编辑框2”的内容。
如下图: 运行后填写“编辑框2”的文件名,成功将两个组合起来。
● 创建父目录文件对象方法
如下图: 打开帮助可以看到参数名和返回值都是“文件名类”对象,如果没有“父目录”会返回“空对象”。
如下图: 代码编写也很简单,我们只需要在“创建3”的基础上稍作修改即可。
如下图: 运行后成功取出了“外部存储空间”的父目录。
● 创建绝对路径文件对象方法
如下图: 打开帮助内容,可以看到该方法的“参数”和“返回值”都是“文件名类”。 顾名思义就是取绝对路径的“文件名类”对象
如下图: 我们用“创建”方法,创建一个以“编辑框2”内容为参数的文件名类,并且赋值给定义的“文件名类变量” 然后用“创建绝对路径文件对象”的方法,将“编辑框2”的“相对路径”转换成“绝对路径”的文件名类变量。 最后用“取文件名”方法,取出来路径文本看一下效果。
如下图: 运行后,我们在“编辑框2”,输入“相对路径”执行后会自动处理成“绝对路径”。
● 创建绝对路径文件对象2方法
如下图: 打开帮助内容我们可以看到本方法和“创建绝对路径文件对象”没什么区别,不同之处就是本方法不会对“相对路径”前面的两个小数点就行处理。
如下图: 代码编写也和“创建绝对路径文件对象”一模一样。
如下图: 调试运行后,我们输入一个“相对路径”可以看到本方法并没有处理掉两个小数点。
● 创建临时文件方法
如下图: 打开帮助内容,可以看到本方法有“三个参数”和一个“文件名类”的返回值,并且“参数2和3”都有默认值。
如下图: 代码编写如下图,依然是定义一个“文件名类”变量,把“编辑框2”的内容放入“参数1”,“参数2和3”因有默认值所以可以直接省略不写。 最后我们可以用“取文件名”的方法取出“临时文件”的目录。
如下图: 调试运行后,可以在“编辑框2”输入一个“文件名”,取出完整路径后可以看到,后缀也是默认的“tmp”。 并且在“文件名”和“后缀”之间有一个10位数的“时间戳”。
● 创建目录方法
如下图: 打开帮助内容,可以看到它有一个“文件名类”参数和一个“逻辑”返回值。 注意黄框内容,如果“父目录不存在”或者“目录已经存在”都会返回“假”。
如下图: 定义一个“目录对象”的文件类变量,然后用“创建”方法,创建“编辑框1”的内容给定义的变量。
如下图: 调试运行后,我们输入要创建的"目录名","左图"创建成功,"右图"重复第二次创建会提示失败。
如下图: 打开手机"文件管理器",也可以看到我们创建的"目录"。
● 创建目录内容文件列表方法
如下图: 打开帮助内容,可以看到本方法只有一个“文件名类”参数和一个“文件名类数组”返回值。 顾名思义就是返回指定目录内的“子目录”和“文件名”数组。
如下图: 代码编写也很简单,定义三个变量,依然是用“创建”方法去创建文件对象,赋值给变量。 然后用该方法就可以取出“文件名类数组”。 最后利用“取数组成员数”的方法取数量,最后“到文本”显示结果。
如下图: 左图:我们在“666”目录,随便放“两个”文件夹和“三个”文件。 右图:成功的取出“数量5”。
● 创建新文件方法
如下图: 打开帮助内容,可以看到"创建新文件"有一个"文件名类"参数和一个"逻辑"返回值。 注意:黄色的框内提示,已经存在返回假。
如下图: 代码编写依然是创建“文件名类”变量,然后用“创建”方法赋值。 最后使用本方法进行文件创建。
如下图: 左图:我们在“666”目录内创建一个“777”的文本文件,提示创建成功。右图:重复创建则会返回“失败”。
如下图: 打开手机"文件管理器",可以看到文件成功创建。
● 创建整个目录方法
如下图: 打开帮助内容,可以看到本方法也是一个“文件名类”参数和一个“逻辑”返回值。 它和“创建目录”不同之处在于,它可以直接创建“多层”目录,创建的“目标目录”的“父目录”如果不存在会“自动创建”。 注意:如果目标"目录"存在会返回假。
如下图: 代码编写也非常简单,和“创建新文件”方法无差别。
如下图: 调试运行后,我们在“编辑框”输入自己要创建的“多层”目录,执行会全部创建成功。
如下图: 打开手机"文件管理器",可以看到输入的“所有目录”全部自动创建。
● 路径比较方法
如下图: 打开帮助内容,可以看到"路径比较"有两个个"文件名类"参数和一个"整数"返回值。 顾名思义就是比较“两个路径”是否相等。 注意:帮助文档内的返回值书写“有错误”。 路径一大于路径二:结果“大于0”。 路径一小于路径二:结果"小于0"。 路径一等于路径二:结果"等于0"。
如下图: 代码编写也很简单,定义两个“文件名类”变量和一个“整数”的结果变量。 随后用创建方法分别将两个“编辑框”的内容创建“文件对象”,并且赋值给“文件名类变量”。 最后用“路径比较”方法对比即可。
如下图: 运行后输入路径内容,比对结果如下。
● 取父目录方法
如下图: 打开帮助内容,可以看到本方法有一个“文件名类”参数和一个“文本”返回值。 顾名思义就是取出指定“文件对象”的“父目录”。
如下图: 代码编写很简单,创建一个“文件类对象”,用“创建”方法创建对象。 最后用“取父目录”就可以取出来“父目录路径”。
运行后如下图: 左图:成功取出“目录”的“父目录路径”。 右图:成功取出"文件"的"父目录路径"。
● 取绝对路径方法
如下图: 打开帮助内容,可以看到本方法有一个"文件名类"参数和一个"文本"返回值。 本方法和“创建绝对路径文件对象”不同之处就是,本方法直接返回“文本”。
代码编写如下图: 依然是需要“创建”方法,创建“文件名类”的变量,最后用“取绝对路径”方法取出即可。
如下图: 我们在“编辑框1”输入一个“相对路径”,会自动处理成“绝对路径”。
● 取绝对路径2方法
如下图: 打开帮助内容,可以看到本方法和“取绝对路径”唯一的区别就是,本方法不会对“相对路径”的两个小数点进行处理。
如下图: 代码编写和“取绝对路径”没有任何区别。
如下图: 输入一个“相对路径”可以看到并没有对小数点进行处理。
● 取可用空间尺寸方法
如下图: 打开帮助内容,可以看到本方法有一个“文件名类参数”和一个“长整数”的返回值,返回字节长度。
代码编写如下图: 非常简单,将定义的“文件名类”变量,直接调用“取可用空间尺寸”方法即可。 最后“到文本”赋值给“编辑框2”显示出来。
如下图: 调试运行后,我们可以取出“外部存储数据根目录”还有这么多"字节"可以用。
● 取目录内容列表方法
如下图: 打开帮助内容,可以看到本方法和“创建目录内容文件列表”不同之处在于,本方法直接返回“文本型”数组。
如下图: 定义两个变量,创建“文件名类”对象后,直接调用本方法就可以取出“目录文件数组” 最后“取数组成员数”,然后“到文本”赋值给“编辑框2”显示出来。
如下图: 执行后左图显示“4个”数组成员,右图的“文件管理器”也是“4个”,证明取出的是正确的。
● 取全部空间尺寸方法
如下图: 顾名思义就是取出所有空间的尺寸,返回值的单位依然是字节。
如下图: 依然是创建“文件名类”变量,随后用本方法直接取尺寸,最后转换文本赋值给“编辑框2”显示。
如下图: 调试运行后,成功取出“取外部存储空间根目录”总共有这么多字节空间。
● 取剩余空间尺寸方法
如下图: 本方法和“取全部空间尺寸”没什么区别,顾名思义就是“取出剩余空间”尺寸。
如下图: 代码编写和“取全部空间尺寸”一样,直接套用下来即可。
如下图: 运行后可以看到成功取出“取外部存储空间根目录”还有这么多字节空间可以用。
● 取文件尺寸方法
如下图: 打开帮助内容,可以看到有一个“文件名类”参数和一个“长整数”返回值。 注意:只能“取文件尺寸”,目录取不出来。
代码如下图: 定义“文件名类”变量,然后用本方法直接“取文件尺寸”即可。
如下图: 成功取出“666”文件夹内的“1.png”图片尺寸。
● 取文件名方法
如下图: 可以看到一个“文件名类”参数和“文本型”的返回值。 顾名思义就是取出创建“文件对象”时候的完整“文件路径”。
如下图: 代码编写也很简单,和前面的命令模式基本一样,套下来即可,最后赋值给“编辑框2”显示。
如下图: 左图:取目录对象的效果(取出来的路径没有结束的“路径符”)。 右图:取文件对象的效果。
● 取无路径文件名方法
如下图: 帮助内容依然显示一个“文件名类”参数和一个“文本返回值”。 顾名思义就是取出“目录名”和“文件名”,不包括前面的路径部分。
如下图: 定义“文件名类”变量,创建“文件名类”后赋值给“变量”,最后用本方法“取无路径文件名”,赋值给“编辑框2”显示。
如下图: 左图:“取目录名”效果。 右图:“取文件名”效果。
● 取系统所有根目录方法
如下图: 打开帮助内容,可以看到它之后一个“文件名类”的“数组”返回值。 顾名思义就是取出所有的“根目录”。
如下图: 创建“文件类数组”变量,然后用本方法为“数组变量”赋值。 最后“取数组成员数”,“到文本”转换,然后用“提示信息框”显示出来看效果。
如下图: 运行后,因安卓系统下只有一个根目录,所以“显示1”。
● 取最后修改时间方法
如下图: 打开帮助内容,有一个“文件名类”参数和一个“长整数”的返回值。 返回的是一个13位数的时间戳,这个时间戳就是从1970年1月1日0点,到指定时间的毫秒数。
代码如下图: 依然是将“编辑框1”的内容创建一个“文件类变量”,然后赋值给定义的“变量”。 然后用“取最后修改时间”方法就可以取出修改13位毫秒时间戳。
如下图: 左图:成功取出一个“文件”的最后修改时间。 右图:成功取出一个“目录”的最后修改时间。
● 删除方法
如下图: 打开帮助内容,参数和上面的方法一样都是“文件名类”,不同之处就是它的返回值是“逻辑型”。 要注意的是,如果删除目录,必须保证目录内是空的。
如下图: 本方法也需要创建“文件类变量”,然后直接使用“删除”方法即可,最后用“如果”进行判断。
如下图: 左图:删除文件“1.txt”成功。 右图:因为“666”目录内还有其它文件,所以目录“删除失败”。
● 是否被隐藏方法
如下图: 顾名思义,就是判断一个“文件类”对象是否是“隐藏文件”或者“目录” 应用场景:例如你用某个方法获取到一个“路径”,但是不知道这个“路径”的“文件对象”是不是“隐藏”状态。 这时候你就可以用“本方法判断”。
如下图: 因为是写例子,所以使用本方法需要提前创建一个"文件类变量",然后直接使用"是否被隐藏"方法,最后用"如果"进行判断。
如下图: 左图:我们手动输入一个“隐藏的文件名”,就会自动判断出它是隐藏的文件。 右图:我们手动输入一个“正常的文件名”,就会可以判断出他不是隐藏文件。 注意:本方法对“隐藏的目录”判断同样有效,并且无论是“隐藏的文件”还是“隐藏的目录”,“目录名”和“文件名”前面会有一个“小数点”作为标识(红圈内)。
● 是否存在方法
如下图: 顾名思义就是判断指定的“文件对象”是否存在,存在返回真,不存在返回“假”。 目录和文件都可以进行判断。
如下图: 创建"文件类变量",然后直接使用"是否存在"方法即可,最后用"如果"进行判断。
如下图: 左图:执行后“目录存在”。 右图:随便输入一个不存在文件,就会提示“不存在”。
● 是否可读取方法
如下图: 顾名思义,就是判断一个“文件名类”是否可被当前程序读取使用,如果没有操作权限会返回“假”,相反返回“真”。 什么时候“返回假”? 例如:你操作的目录是安卓内部收据目录,并且还没有获取root权限,肯定是返回“假”。 如果指定的“文件对象”已经被其他软件占用,这个时候也会返回“假”。 如果目标文件不存在,也返回“假”。
如下图: 创建"文件类变量",然后直接使用"是否可读取"方法即可,最后用"如果"进行判断。
如下图: 运行后,“外部存储数据目录”可以被读取,所以返回“可以”。
● 是否可写入方法
如下图: 顾名思义就是判断一个文件对象是否有“可写入”的权限,有返回“真”,没有返回“假”。 返回假的情况同“是否可读取”
如下图: 创建“文件类变量”,然后直接使用“是否可写入”方法即可,最后用“如果”进行判断。
如下图: “1.png”存在并且有“写入权限”,所以这里返回“可以”。
● 是否可执行方法
如下图: 顾名思义就是判断一个文件对象是否有“可执行”的权限,有返回“真”,没有返回“假”。 返回假的情况同“是否可读取”
如下图: 创建“文件类变量”,然后直接使用“是否可执行”方法即可,最后用“如果”进行判断。
如下图: 左图:“666”目录存在且可以被执行,所以返回“可以执行”。 右图:随便输入了一个“不存在”的目录,会返回“不可以”。
● 是否为绝对路径方法
如下图: 顾名思义就是判断一个“文件对象”是否为“绝对路径”,如果是"真",不是返回"假"。 注意黄色框内提示:只要不是“/”起始的路径,都不是绝对路径。
如下图: 创建“文件类变量”,然后直接使用“是否为绝对路径”方法即可,最后用“如果”进行判断。
如下图: 左图:带“/”路径符的直接判断“是”。 右图:只要删除了“/”路径符号就会判断“不是”。
● 是否为目录方法
如下图: 顾名思义就是判断一个文件对象“是否为目录”,如果是目录返回“真”,不是返回“假”。 目标目录不存在也会“返回假”。
如下图: 创建"文件类变量",然后直接使用"是否为目录"方法即可,最后用"如果"进行判断。
如下图: 左图:是目录“返回真”。 右图:输入了一个文件则会“返回假”
● 是否为文件方法
如下图: 本方法和“是否为目录”的功能正好相反,它是用来判断目标对象是否为“文件”,如果是文件返回"真",不是返回"假"。 目标文件不存在也会"返回假"。
如下图: 创建"文件类变量",然后直接使用"是否为文件"方法即可,最后可以用"如果"进行判断。
如下图: 左图:目标存在,并且是文件“返回真”。 右图:虽然输入了一个文件,但是目标不存在,依然会返回“不是文件”。
● 置可读状态方法
如下图: 本方法有三个参数。 参数一:依然是“文件名类”。 参数二:是否可读,意思就是说,设置指定“文件对象”是否可读状态。“真”为可读,“假”为不可读。 参数三:“真”设置给当前用户,“假”设置给所有用户。 注意:“黄色框”内提示,因国内安卓系统环境复杂,并不保证每一台手机都可以设置生效(关于权限的设置不再赘述)。
如下图: 创建"文件类变量",然后直接使用"置可读状态"方法即可,最后可以用"如果"进行判断。 注意:这里采用的是“动态调用”(变量调用的模式),所以“参数一”的“文件名类”可以省略,直接从“参数二”开始写即可。
● 置可写状态方法
如下图: 本方法依然是三个参数。 本方法和“置可读状态”一样,设置指定"文件对象"是否可写入数据。 失败原因:同“置可读状态”。
如下图: 代码编写和“置可读状态”一样。
● 置可执行状态方法
如下图: 本方法和"置可读状态"一样,设置指定"文件对象"是否可执行。 失败原因:同"置可读状态"。
如下图: 创建"文件名类",然后用直接调用本方法,最后用"如果"判断返回值即可。。
● 置为只读方法
如下图: 本方法和"置可读状态"一样,设置指定"文件对象"只可以读取数据,不可写入数据。 失败原因:同"置可读状态"。
如下图: 创建“文件名类”,然后用直接调用“本方法”,最后用“如果”判断返回值即可。。
● 置最后修改时间方法
如下图: 打开帮助可以看到有两个参数,设置成功返回“真”,失败返回“假”。 参数一:还是“文件名类”。 参数二:13位数的时间戳。
如下图: 创建“文件名类”,赋值给“文件名类变量”。 用“取当前毫秒时间”方法,可以取出当前时间的时间戳,取出后赋值给定义的“长整数”变量。 最后把“当前时间”变量,放入本方法内,最后用“如果”判断返回值即可。 执行成功后,可以用“取最后修改时间”取出时间戳显示出来。
运行后效果如下图:
● 重命名方法
如下图: 可以看到有两个“文件名类”参数,成功返回“真”,失败返回“假” 本方法也可用作“移动文件”到“另外一个目录”,并且还可以进行重名操作。 如果要“移动文件”,必须保证“目标目录”存在。
如下图: 本方法需要创建两个“文件名类”,一个“源文件”,一个是“目标文件”。 然后将两个变量依次放入“重命名”方法即可。
如下图: 左图:把“666”目录内“1.png”成功移动并且重命名到了“外部存储空间根目录” 右图:可以在“文件管理器”内看到移动后的“新文件名”。
三、文件访问类
● 首先需要了解一下“状态类”和“文件打开方式”
“状态类”如下图: 打开“状态类”帮助内容,可以看到它有“四个”常量,每个常量代表不同的意思,具体看红色箭头指的位置说明。 常量调用方式“类名.”+“常量名”即可。
“文件打开方式”如下图: 本类也有“四个常量”,具体作用和说明看图上的文字说明。
● 创建方法
如下图: 打开帮助内容,可以看到它有“两个参数”,其中一个参数正是上面提到的“文件打开方式”。 本方法的返回值则是“文件访问类”。 顾名思义:本方法的作用就是创建一个“文件访问类”对象,然后根据这个对象进行各种各样的操作。
如下图: 代码编写也很简单。 “参数一”和“参数二”根据自己的“实际需求”填写自己需要的内容。 注意:“文件打开方式”后面的小数点不要忘记了。
● 创建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字节”
本教程已经录入火山官方图文教程,地址:http://doc.voldp.com/
|