File 类的使用

2025-10-20 14:45:43

1、IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件,先看一下构造方法,如下图:

     具体实例:

      A:Filefile = new File("e:\\demo\\a.txt");

      B:Filefile = new File("e:\\demo","a.txt");

      C:Filefile = new File("e:\\demo");

          File file2 = newFile(file,"a.txt");

File 类的使用

2、File类的功能

    A:创建功能

          public boolean createNewFile()  //  创建新文件

          public boolean mkdir()                //  创建一个文件夹

          public boolean mkdirs()              //  创建多个文件夹

    B:删除功能 

         public boolean delete()  //     只能删除单个文件或文件夹,当一个文件

                                                          夹 下有东西时,不可以删除该文件夹

          File file = new File("e:\\aaa\\bbb\\ccc");

           file.delete();  // 删除了文件夹ccc(前提是ccc下没有东西)

    C:重命名功能

          public boolean renameTo(File dest)

                   // 如果是相同的路径,就相当于重命名功能

          File file = new File("e:\\aaa\\a.txt");

          File newfile = new File("e:\\aaa\\abb.txt");

          file.renameTo(newfile);

              如果是不同路径,就相当于剪切功能                                 

           File file = new File("e:\\aaa\\a.txt");

            File newfile = new File("e:\\aaa\\bbb\\abb.txt");

             file.renameTo(newfile);

    D:判断功能

           public boolean isDirectory()

                                         判断是否为文件夹

            public boolean isFile()

                                         判断是否为文件

             public boolean exists()

                                         判断是否存在

             public boolean canRead()

                                       判断是否可读

             public boolean canWrite()

                                       判断是否可写

             public boolean isHidden()

                                    判断是否隐藏

      E:获取功能

             public String getAbsolutePath()

             public String getPath()

             public String getName()

              public long length()

              public long lastModified()

                          获取文件最后修改时间

      F:高级获取功能

               public String[] list()

                 获取的是某个 指定目录下 的所有文件或文件夹(file = new File                      ("d:\\aaa"));

                这个只可以获取得到名称,不可以操作

               public File[] listFiles()

                 获取的是 指定目录下 文件对象数组

                  可以对数组中每个元素进行操作(因为每一个都是一个文件对象)

     G:过滤器功能

           public String[] list(FilenameFilter filter)

                      FilenameFilter是一个接口,所以需要写一个实现类才可以,或

                                   者直接在方法括号中new 一个

           然后实现里面的accept()方法;方法里面写实现你需求的代码;返回

          的是一个String【】数组

          public File[] listFiles(FilenameFilter filter)

File 类的使用

3、给出一个例子:

   

/*

 * 需求:请大家把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台。

 * 

 * 分析:

 * A:封装目录

 * B:获取该目录下所有的文件或者文件夹的File数组

 * C:遍历该File数组,得到每一个File对象

 * D:判断该File对象是否是文件夹

 * 是:回到B

 * 否:继续判断是否以.java结尾

 * 是:就输出该文件的绝对路径

 * 否:不搭理它

 */

public class FilePathDemo {

public static void main(String[] args) {

// 封装目录

File srcFolder = new File("E:\\JavaSE");

// 递归功能实现

getAllJavaFilePaths(srcFolder);

}

private static void getAllJavaFilePaths(File srcFolder) {

// 获取该目录下所有的文件或者文件夹的File数组

File[] fileArray = srcFolder.listFiles();

// 遍历该File数组,得到每一个File对象

for (File file : fileArray) {

// 判断该File对象是否是文件夹

if (file.isDirectory()) {

getAllJavaFilePaths(file);

} else {

// 继续判断是否以.java结尾

if (file.getName().endsWith(".java")) {

// 就输出该文件的绝对路径

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

}

}

}

}

}

得出结果如下,它会输出你定义路径下的绝对路径

File 类的使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢