ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[success] # io.File 1. `java.io.File`类主要用于描述文件或目录路径的抽象表示信息,可以获取文件或目录的特征信息,如:大小等 >[info] ## 常用方法 |方法声明| 功能概述| |--|--| |File(String pathname)| 根据参数指定的路径名来构造对象| |File(String parent, String child) |根据参数指定的父路径和子路径信息构造对象| |File(File parent, String child) |根据参数指定的父抽象路径和子路径信息构造对象| |boolean exists()| 测试此抽象路径名表示的文件或目录是否存在| |String getName() |用于获取文件的名称| |long length() |返回由此抽象路径名表示的文件的长度| |long lastModified() |用于获取文件的最后一次修改时间| |String getAbsolutePath() |用于获取绝对路径信息| |boolean delete() |用于删除文件,当删除目录时要求是空目录| |boolean createNewFile() |用于创建新的空文件| |boolean mkdir() |用于创建目录| |boolean mkdirs() |用于创建多级目录| |File[] listFiles() |获取该目录下的所有内容| |boolean isFile() |判断是否为文件| |boolean isDirectory() |判断是否为目录| |File[] listFiles(FileFilter filter) |获取目录下满足筛选器的所有内容| ~~~ import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class FileTest { public static void main(String[] args) { File f1 = new File("./a.txt"); // 判断当前的文件或目录是否存在 if (f1.exists()) { // 获取文件名 String fileName = f1.getName(); System.out.println(fileName); // 获取文件大小 long fileSize = f1.length(); System.out.println(fileSize); // 获取文件最后修改时间 long lastTimeStamp = f1.lastModified(); Date lastTime = new Date(lastTimeStamp); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(lastTime); System.out.println(str); // 获取绝对路径 System.out.println("文件的绝对路径信息是:" + f1.getAbsolutePath()); System.out.println(f1.delete() ? "文件删除成功" : "文件删除失败"); } else { try { // 若文件不存在则创建新的空文件 System.out.println(f1.createNewFile() ? "文件创建成功" : "文件创建失败!"); } catch (Exception e) { e.printStackTrace(); } } } } ~~~ ~~~ import java.io.File; import java.io.FileFilter; public class FileTest { // 自定义成员方法实现指定目录以及子目录中所有内容的打印 public static void show(File file) { // 获取目录f3下的所有内容并记录到一维数组中 File[] filesArray = file.listFiles(); // 遍历数组 for (File tf : filesArray) { String name = tf.getName(); // 判断是否为文件,若是则直接打印文件名称 if (tf.isFile()) { System.out.println(name); } // 若是目录,则使用[]将目录名称括起来 if (tf.isDirectory()) { System.out.println("[" + name + "]"); show(tf); } } } public static void main(String[] args) { // 实现目录的删除和创建 File f2 = new File("d:/aa/bb/cc/dd"); if (f2.exists()) { System.out.println("目录名称是:" + f2.getName()); System.out.println(f2.delete() ? "目录删除成功" : "目录删除失败"); // 只能删除一层 } else { // System.out.println(f2.mkdir()? "目录创建成功": "目录创建失败"); // 创建单层目录 System.out.println(f2.mkdirs() ? "目录创建成功" : "目录创建失败"); // 创建多层目录 } // 将指定目录中的所有内容打印出来 File f3 = new File("d:/aa"); // 获取目录f3下的所有内容并记录到一维数组中 File[] filesArray = f3.listFiles(); // 遍历数组 for (File tf : filesArray) { String name = tf.getName(); // 判断是否为文件,若是则直接打印文件名称 if (tf.isFile()) { System.out.println(name); } // 若是目录,则使用[]将目录名称括起来 if (tf.isDirectory()) { System.out.println("[" + name + "]"); } } // 实现目录中所有内容获取的同时进行过滤 // 匿名内部类的语法格式:接口/父类类型 引用变量名 = new 接口/父类类型() { 方法的重写 }; /* * FileFilter fileFilter = new FileFilter() { * * @Override * public boolean accept(File pathname) { * // 若文件名是以.avi为结尾,则返回true表示保留 否则返回false就是表示丢弃 * return pathname.getName().endsWith(".avi"); * } * }; */ // Lambda表达式的格式:(参数列表) -> {方法体} FileFilter fileFilter = (File pathname) -> { return pathname.getName().endsWith(".avi"); }; File[] filesArray2 = f3.listFiles(fileFilter); for (File tf : filesArray2) { System.out.println(tf); } // 递归 show(new File("d:/aa")); } } ~~~