Java基础 -- 文件操作

Java基础 -- 文件操作

Java中不管是目录还是文件均使用File类表示,因此在使用File操作目录和文件时需要对File进行判断,使用方法:file.isDirectory()file.isFile()

创建目录

Java中创建目录使用file.mkdirs()实现

/**
 * 创建目录
 * @param path
 */
private static void makeDirs(String path) {
    // 创建File对象
    final File dir = new File(path);
    // 创建目录
    dir.mkdirs();
}

创建文件

Java中创建文件使用file.createNewFile()实现

private static void makeFiles(String path) throws IOException {
    File dir = new File(path);
    if (dir.isDirectory()) {
        while(dir != null) {
            final File file = new File(dir + "/test.txt");
            if (file.createNewFile()) {
                System.out.println("创建文件" + file.getName() + "成功");
            } else {
                System.out.println("创建文件" + file.getName() + "失败");
            }
            dir = dir.getParentFile();
        }
    }
}

遍历目录

遍历目录过程中,需要对子目录进行迭代遍历,通过递归调用遍历函数实现;如果是文件则直接打印即可

/**
 * 遍历目录
 * @param path
 */
private static void listDir(String path) {
    // 创建File对象
    final File dir = new File(path);
    // 遍历目录
    if (dir.isDirectory()) {
        final File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                // 如果是目录,则继续遍历
                System.out.println(file + " is a directory");
                listDir(file.getPath());
            } else {
                System.out.println(file + " is a file");
            }
        }
    }
}

删除目录及文件

删除目录过程中,对于子目录的删除通过递归调用删除函数实现;如果是文件则直接删除

/**
 * 删除目录及文件
 * @param path
 */
private static void deleteDir(String path) {
    final File dir = new File(path);
    // 删除子目录及文件
    final File[] files = dir.listFiles();
    if (files != null) {
        for (File file : files) {
            if (file.isDirectory()) {
                // 删除目录
                deleteDir(file.getPath());
            } else {
                // 删除文件
                file.delete();
            }
        }
    }
    // 删除当前目录
    dir.delete();
}

对于目录删除逻辑而言,只有在完成当前目录的子目录及文件删除操作之后,才对当前目录执行删除操作。

posted @ 2021-02-22 17:22  LinPerfei  阅读(61)  评论(0)    收藏  举报