java.io.File类可以表示文件或者文件夹。

构造方法:

   public File(String path):参数代表文件或文件夹的路径。

   public File(String parent, String child):第一个参数代表父文件夹(字符串),第二个参数代表子文件夹或文件。

   public File(File parent, String child):第一个参数代表父文件夹(File对象),第二个参数代表子文件夹或文件。

获取的方法:

   public long length():获取文件的字节大小。

   public String getName():获取文件的简短名称,不包括父文件夹。

   public String getAbsolutePath():获取绝对路径。

   public String getPath():获取构造参数路径。

判断的方法:

   public boolean exists():判断文件或者文件夹是否存在。

   public boolean isFile():判断是不是一个文件。

   public boolean isDirectory():判断是不是一个文件夹。      

创建的方法:

   public boolean createNewFile():创建一个文件,返回是否成功。

   public boolean mkdir():创建单级文件夹。

   public boolean mkdirs():创建多级文件夹。

删除的方法:

   public boolean delete():删除文件或文件夹。

   注意:

   1. 删除了之后不会进入回收站的,所有要谨慎操作。

   2. 如果删除文件夹,那么必须保证文件夹是空的。(优先删除其中的内容之后,才能删除空文件夹)

列出的方法:

   public String[] list():获取所有的简短名称字符串们。

   public File[] listFiles():列出所有的File对象们。

   public File[] listFiles(FileFilter filter):参数代表文件过滤的规则。

   java.io.FileFilter接口当中唯一的抽象方法:

   boolean accept(File file):返回true代表要,返回false代表不要。

         

绝对路径:从Windows的盘符开始,一个完整的路径。

相对路径:相对于当前项目而言,一个简短路径。

递归(Recursion)

   概念:方法自己调用自己。

   注意:必须设置一个终止条件,否则将会发生StackOverflowError栈溢出错误。

   这个错误产生的原因是:无限进栈,导致栈内存不够用。

   通过代码递归列出文件夹深度多层级的所有内容:

  private static void show(File dir) {
              File[] files = dir.listFiles();
              for (File file : files) {
                     if (file.isFile()) {
                            System.out.println(file);
                     }
                     if (file.isDirectory()) {
                            // 如果是文件夹,那么递归调用当前方法show自己,但是要有一个终止条件。
                            show(file);
                     }
              }
       }
Last modification:July 29th, 2019 at 05:28 pm