File类的简单使用

时间:2023-01-16 21:37:58

File类:

1.什么是File类?

  文件和文件目录的抽象表示

2.用来干什么?

  用来对文件或者文件进行简单的读,这里的读是指对文件的属性进行读,获取文件的属性到jvm上面去,可以打印到控制台上。

  可以列出一个文件夹中的所有东西,利用方法的迭代还可以列出一个路径下的所有文件。

3.构造方法

  

 

File(File parent, String child)
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

 

File(String pathname)
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

 

File(String parent, String child)
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

 

File(URI uri)
          通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

 

总共四个构造方法,在学习中常用的事第二个。

4.File类的简单操作

(1)文件的属性操作

File file=new File("D:\\课程\\第一天练习code");//以绝对路径创建一个File对象

        if(file.exists()) {//exists()方法,判断文件或者目录是否存在,存在返回true,不存在返回false

           

            file.isDirectory();//判断文件是否是目录,是返回true,不是返回false

            file.isFile();//判断文件是否是文件,是返回true,不是返回false

           

            file.lastModified();//返回文件最后一次修改的时间

            file.getAbsolutePath();//返回文件的绝对路径名字符串  D:\课程\第一天练习code

           

            file.getAbsoluteFile();//返回文件的绝对路径名形式     D:\课程\第一天练习code 返回的是应用类型File

            file.getCanonicalPath();// 返回此抽象路径名的规范形式。 D:\课程\第一天练习code 返回的是应用类型File

           

            file.delete();// 删除此抽象路径名表示的文件或目录。 如果file是文件夹,并且文件里面有文件,删除不成功,返回false,成功返回true

            file.getName();// 返回由此抽象路径名表示的文件或目录的名称。

           

            file.getParent();//返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null 这个方法返回的是字符串

            file.getParentFile();//  返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。 返回的是File类型

           

            file.length();//   返回由此抽象路径名表示的文件的长度。

(2)文件的创建和文件的边历

文件的创建:

    File file=new File("测试文件夹");//抽象路径 在当前工作目录下的文件也可以用绝对路径

        File file1=new File("a.txt");

        if(!file.exists()) {

            //如果文件不存在,那就创建文件目录

            file.mkdir();//只能创建一层目录     file.mkdirs(); 该方法可以创建多层目录

            System.out.println(file.getAbsolutePath());

        }

        if(!file.exists()) {

            //如果文件不存在,那就创建文件

            file.createNewFile();//创建文件

        }

文件的遍历:

    public class FileDemo03 {

    public static void main(String[] args) {

        File file=new File("D:\\");//D盘路径

        list(file);//列出D盘下的文件

        listAll(file);//列出D盘中所有文件

    }

 

    private static void listAll(File file) {

        // TODO Auto-generated method stub

        File[] files=file.listFiles();//获取当前目录的文件

        for (File file2 : files) { //利用增强for循环遍历文件

            if(file2.isDirectory()) {//如果是目录,继续调用方法

                listAll(file2);

                System.out.println(file2.getName());//打印目录

            }else {//打印出文件文件

                System.out.println(file2.getName());

            }

           

        }

    }

文件的遍历还可以使用过滤器:

   

 File[]

listFiles(FileFilter filter)
          返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

使用这个方法,可以使用内部类或者继承的方式来重写过滤器里面的方法来实现文件的遍历