File类

  • 概念:代表物理盘符中的一个文件或者文件夹

  • 方法

    • public boolean CreateNewFile()

      当且仅当指定的文件名不存在时创建一个指定的新的、空的文件。创建成功返回true,如果指定文件名已存在返回false。

    • public boolean mkdir()

      创建一个指定路径名的文件夹。当且仅当文件夹被创建时返回true,否则返回false。

    • public boolean delete()

      删除一个指定的文件或文件夹,文件夹必须为空才能被删除。当且仅当指定的文件或文件夹被删除时返回true,否则返回false。

    • public boolean exists()

      检查指定的文件或文件夹是否存在。当且仅当指定的文件或者文件夹存在时返回true,否则返回false。

    • public File[] listFiles()

      列出目录中的所有内容,返回一个指定路径名中的文件数组,如果指定的路径名不代表一个文件夹(目录)就返回null。

    • public boolean renameTo(File dest)

      重命名一个路径名所指定的文件。当且仅当修改操作成功时返回true,否则返回false。

1. 文件分割符

// 输出:
// 路径分隔符:Windows下为 ;  Unix下为 :
// 名称分隔符:Windows下为 \  Unix下为 /
System.out.println("路径分隔符:"+ File.pathSeparator);
System.out.println("名称分隔符:"+File.separator);

2. 文件的基本操作

// 1.创建文件
File file = new File("/Users/admin/Downloads/data.txt");
if (!file.exists()) {
  boolean flag = file.createNewFile();
  System.out.println("创建状态:" + flag);
}

// 2.删除文件
// 2.1 直接删除
/* System.out.println("删除结果:"+file.delete()); */
// 2.2 使用JVM退出时删除(不是自己删除)
file.deleteOnExit();
//调用休眠程序观察删除操作
Thread.sleep(5000);

//3.获取文件信息
System.out.println("文件绝对路径:" + file.getAbsolutePath());
System.out.println("获取路径:" + file.getPath());
System.out.println("获取父目录:" + file.getParent());
System.out.println("获取文件名称:" + file.getName());
System.out.println("获取文件长度:" + file.length());
System.out.println("获取文件最后修改时间:" + new Date(file.lastModified()).toLocaleString());

//4.判断
System.out.println("是否可写:" + file.canWrite());
System.out.println("是否可读:" + file.canRead());
System.out.println("是否隐藏:" + file.isHidden());
System.out.println("是否是文件:" + file.isFile());
System.out.println("是否是文件夹:" + file.isDirectory());

/*
        文件绝对路径:/Users/admin/Downloads/data.txt
        获取路径:/Users/admin/Downloads/data.txt
        获取父目录:/Users/admin/Downloads
        获取文件名称:data.txt
        获取文件长度:130
        获取文件最后修改时间:2021年8月16日上午11:36:39
        是否可写:true
        是否可读:true
        是否隐藏:false
        是否是文件:true
        是否是文件夹:false
         */

3. 文件夹基本操作

// 1.创建文件夹
File dir = new File("/Users/admin/Downloads/aaa/bbb/ccc");
if (!dir.exists()) {
  // mkdir();只能创建单级目录
  boolean flag = dir.mkdirs();// 创建多级目录
  System.out.println("创建结果:" + flag);
}

// 2.删除文件夹
// 2.1 直接删除(必须为空目录)
// System.out.println("删除结果:"+dir.delete());
// 2.2 使用jvm删除
dir.deleteOnExit();

// 3.获取文件夹信息
System.out.println("获取绝对路径:" + dir.getAbsolutePath());
System.out.println("获取路径:" + dir.getPath());
System.out.println("获取父目录:" + dir.getParent());
System.out.println("获取创建时间:" + new Date(dir.lastModified()).toLocaleString());
System.out.println("文件夹名称:" + dir.getName());

// 4.判断
System.out.println("是否隐藏:" + dir.isHidden());
System.out.println("是否是文件:" + dir.isFile());

// 5.遍历文件夹
File dir2 = new File("/Users/admin/Downloads");
String[] files = dir2.list();
for (String string : files) {
  System.out.println(string);
}

/*
        创建结果:true
        获取绝对路径:/Users/admin/Downloads/aaa/bbb/ccc
        获取路径:/Users/admin/Downloads/aaa/bbb/ccc
        获取父目录:/Users/admin/Downloads/aaa/bbb
        获取创建时间:2021年8月19日下午5:43:58
        文件夹名称:ccc
        是否隐藏:false
        是否是文件:false

        // 列出遍历的内容
         */

4. 文件过滤器

FileFilter接口:

  • boolean accept(File pathname)
  • 当调用File类中的listFiles()方法时,支持传入FileFilter接口实现类,对获取的文件进行过滤,只有满足条件的文件才可以出现在listFiles()的返回值中。
File[] files1=dir2.listFiles(new FileFilter() {        
  @Override
  public boolean accept(File pathname) {
    if(pathname.getName().endsWith(".txt")) {
      return true;
    }
    return false;
  }
});
for (File file : files1) {
  System.out.println(file.getName());
}
Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2023-03-05 10:55:52

results matching ""

    No results matching ""