------- android培训、java培训、期待与您交流! ----------
通过今天对java语言IO流的学习,我来给自己的学习内容做下简单直白的总结:
首先,我来总结下学习IO流中的File类:
我们知道,数据最明显的体现形式就是文件...文件也是一类事物,我们就把文件或者文件夹进行了描述,而File类就是用来描述这类事物的..
我们可以将文件或者文件夹封装成对象,来方便我们对文件或者文件夹的属性信息进行操作...
File对象可以做为参数传递给流的构造函数...
一句话总结:File类是用来将文件或者文件夹封装成对象的..来方便我们对文件或者文件夹的属性信息进行操作
注意:流只能操作文件的数据,而File类可以操作文件夹和文件的属性信息...
File类的构造方法:
File类的常见方法:
创建:
(boolean)createNewFile(); 在指定的位置创建文件,如果该文件存在,就不创建返回false
(boolean)mkdir(); 创建文件夹
(boolean)mkdirs(); 创建多级文件夹
删除 :
(boolean)delete(); 删除失败返回false,如果文件正在使用,则删除不了,返回false
(void)deleteOnExit(); 在程序退出时候,删除指定文件(无视异常)
判断 :
(boolean)exists(); 文件或则文件夹是否存在
(boolean)isFile(); 是否是一个文件 (判断前最好判断下该文件是否存在)
(boolean)isDirectory(); 是否是一个文件夹 (判断前最好判断下该文件夹是否存在)
(boolean)isHidden(); 是否是隐藏文件
(boolean)isAbsolute(); 是否是绝对路径(不管该文件或文件夹存在不存在)
获取(和文件或文件夹存不存在无关):
(String)getName(); 获取文件名称
(String)getPath(); 封装的是什么路径,返回的就是什么路径
(String)getAbsolutePath(); 获取绝对路径
(String)getParent(); 获取到的是绝对路径中的父目录,如果没指定绝对路径,会返回null.(也就是文件上层目录)
下面总结下Flie类中的listRoots()方法和list()方法:代码如图:
扩展:如果我不想获取到指定目录的所有文件,而是想要指定目录里的.java文件,怎么实现?
这时,我们可以在list()方法中传递一个接口参数:FilenameFilter(文件过滤器)
FilenameFilter接口下只有一个方法:accept(File dir(被指定的目录),String name(要过滤的文件)) ..返(boolean)
注意:list()和listFiles()区别:
list():只返回字符串内容....listFiles():会返回Flie对象,可以操作对象的方法..
递归的总结:
当函数自身调用自身的时候,这种表现形式,称之为:递归..
递归要注意的情况:
1,要限定条件...
2,要注意递归的次数,以免内存的溢出..
实例:使用递归累加求和....代码内存的运行示例图:
扩展:我们还可以使用递归的形式列出目录及子目录里的内容...但是要注意递归的2个情况...