File 类的使用
1、IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件,先看一下构造方法,如下图: 具体实例: A:File file = new File("e:\demo\a.txt"); B:File file = new File("e:\demo","a.txt"); C:File file = new File("e:\demo"); File file2 = new File(file,"a.txt");
2、File类的功能 A:创建功能 pu水瑞侮瑜blic 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)
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()); } } } }}得出结果如下,它会输出你定义路径下的绝对路径