java File相关
一锅炖不下

基本概念:

  • File对象表示一个路径,可以是文件夹的路径发动反也可以是文件的路径
  • 路径可以存在,也可以不存在?

常用方法:

  • 判断

    • exists
    • isDirectory
    • isFile
  • 获取

    • length: 不能获取文件夹大小, 只能把文件夹中文件大小累加在一起
    • getAbsolutePath
    • getPath
    • getName
    • lastModified
  • 创建

    • createNewFile(): 创建一个新的空文件
    • mkdir(): 创建单级文件夹
    • mkdirs(): 创建多级文件夹
  • 删除

    • delete(): 删除文件, 空文件夹
  • 获取遍历

    • listFiles(): 获取当前路径下所有内容
    • listRoots(): 获取可用的文件系统根目录
  • 思考

    • File应该是用了组合模式

    • 用递归写个深度优先遍历C盘的小程序试试

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      public class SearchFiles {
      public static void main(String[] args) {
      searchFile(new File[]{new File("C:")});
      List<String> list = new ArrayList<String>();
      }

      public static void searchFile(File[] files) {
      if (files == null) {
      return;
      }
      for (File file : files) {
      if (file.isFile()) {
      String fileName = file.getName();
      if (fileName.endsWith(".txt")) {
      System.out.println(fileName);
      }
      }
      File[] sonFiles = file.listFiles();
      searchFile(sonFiles);
      }
      }
      }