JavaSE之File类及相关方法

File类位于java.io包下,主要用于文件或目录的创建、查找和删除等操作

一、File类的静态成员变量

static String pathSeparator     //字符串表示的路径分隔符

static char pathSeparatorChar    //路径分隔符

static String pathSeparator     //字符串表示的默认文件名称分隔符

static char separatorChar     //默认文件名称分隔符

路径分隔符在Windows系统下为分号;在Linux系统下为冒号:

默认名称分隔符在Windows系统下为反斜杠\ 在Linux系统下为正斜杠/

二、File类的构造方法

绝对路径:以盘符开始的完整路径

相对路径:一个简化的路径,相对于当前项目的根目录

注意:路径不区分大小写,在Windows系统下,因为\为转义字符,所以\\表示一个反斜杠

publi File(String pathname) :参数pathname,字符串的路径名称,可以是绝对路径,也可以是相对路径,路径可以存在,也可以不存在,只是将该路径封装为File对象

public File(String parent,String child):parent父路径,child子路径,组合起来是完整路径

三、File类获取功能的方法

 getAbsolutePath()方法返回的是绝对路径表示的字符串,但getPath()根据File对象创建时的参数,可以使绝对路径字符串,也可以是相对路径字符串,File类的toString()方法实际上就是调用了getPath()方法

length()方法获取指定文件的大小,不能获取文件夹的大小,构造方法中的路径不存在时,length()方法返回0

四、File类判断功能的方法

isDirectory()方法和isFile()方法使用的前提是该路径是存在的,若不存在均返回false

 五、File类创建删除功能的方法

 public boolean creatNewFile() throws IOException :创建文件的路径必须存在,否则会抛出异常,因此调用这个方法时,必须处理这个异常,要么throws,要么try catch

mkdir()方法创建单级文件夹,mkdirs()方法可以创建单级文件夹,也可以创建多级文件夹,都是空文件夹,文件夹已存在或路径不存在时均返回false

六、File类目录遍历功能的方法

 两个方法遍历的都是构造方法中参数给出的路径,这个路径不存在或者不是目录(文件夹)时,会抛出空指针异常

使用递归打印多级目录:

public void getAllFile(File dir){

        File[] files=dir.listFiles();

        for(File f: files){

                if(f.isDirectory)

                        getAllFile(f);

                else

                        System.out.println(f);

        }

}

如果要删选出特定后缀的文件(特定类型的文件),使用代码如

if(f.getName().endsWith("特定后缀"));

        System.out.println(f);

七、使用FileFilter过滤器

FileFilter是位于java.io包下的一个接口,该接口的对象可以传递给File类的listFiles(FileFilter)作为参数(重载方法)

该接口中只有一个抽象方法:boolean accept(File pathname)    测试pathname是否包含在某一文件列表中

此接口是没有实现类的,因此使用时需要自己写实现类,重写accept方法,在方法中定义过滤的规则,或者使用匿名内部类

File[] files=dir.listFiles(new FileFilterImpl());

上面的listFiles()方法会把dir构造方法中的目录中的每一个文件/文件夹封装为File对象,并传递给重写的accept()方法进行过滤,accept()方法返回true时就会把这个文件放入files对象数组中去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值