File类提供了一些方法来操作文件和获取文件信息。对于目录,java把它当成一种特殊类型的文件,及文件名目录。

   File类直接处理文件和文件系统,通过File类的方法,可以得到文件目录或者文件目录的描述,包括文件名、文件路径、长度等。

1、构造方法

   File(String path);

   File (String dir,String filename)

   File (File dir,String filename)

   File (URL url)

其中,dir是文件所在目录,filename是文件名,path是文件的路径。

例如:

File f1=new File("D:/java");
File f2=new File("D:/java", "sh.txt");
File f3=new File(f1, "sh.txt");
File f4=new File("file://D:/java/sh.txt");

2、File类提供的方法

   File类定义了很多获取File属性的方法。例如getName()、exists()等。下面通过一个具体的例子介绍File类的用法。


public class TestFile {
    public static void main(String[] args) {
        File f1 = new File("G:/java");
        File f2 = new File("G:/java/shao.txt");
        //创建单层目录。如果多层目录用mkdirs()
        f1.mkdir();
        //创建文件
        try {
            f2.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //getName()返回目录名/文件名
        System.out.println("目录名:"+f1.getName());
        System.out.println("文件名"+f2.getName());
        //exists()判断文件是否存在,存在返回true,不存在返回false
        System.out.println("是否存在:"+f1.exists());
        //getPath()获取文件路径
        System.out.println("路径:"+f2.getPath());
        //isDirectory()/isDirectory()判断是否是目录/文件,是返回true,否则返回false
        System.out.println("是否是目录:"+f1.isDirectory());
        System.out.println("是都是文件:"+f2.isDirectory());
                                                 
        System.out.println("………………………………目录操作………………………………");
        //listFiles()方法列出目录中所有文件。放在一个文件数组中接收。
        File[] fileArr = f1.listFiles();
        for (File file : fileArr) {
            //打印所有文件
            System.out.println(file);
            /*//输出以.java结尾的文件名
            if (file.getName().endsWith(".java")) {
                System.out.println(file);
            }*/
                                                     
        }
        //通过匿名内部类的方式定义过滤器。筛选文件
        File[] fileArr1 =f1.listFiles(new FileFilter() {
                                                     
            @Override
            public boolean accept(File file) {
                if (file.getName().endsWith(".java")) {
                    return true;
                }else {
                    return false;
                }
            }
        });
        for (File file : fileArr1) {
            System.out.println(file.getName());
        }     
    }
}
 运行结果:

目录名:java

文件名shao.txt

是否存在:true

路径:G:\java\shao.txt

是否是目录:true

是都是文件:false

………………………………目录操作………………………………

G:\java\sh.java

G:\java\shao.java

G:\java\shao.txt

sh.java

shao.java