欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java后端笔记12

程序员文章站 2022-07-09 21:46:19
...

File

import java.io.File;

/**
 * Create by xiye on 2019/12/3 14:42
 */
public class Demo1_文件 {
    /*
    * File file = new File(String pathName);
    *   pathName可以是文件的路径字符串,也可以是文件夹路径字符串
    *   当pathname为空字符串时,表示当前工程目录
    *
    * File file = new File(String basePath, String fileName);
    * File file = new File(File parent, String child);
    *
    *
    * */
    public static void main(String[] args) {
        fileMethod();

        relativePathMethod();

    }

    private static void relativePathMethod() {
        String separator = File.separator;
        String path = "Day17" + separator + "src";
        File file = new File(path);
        System.out.println("文件构造器名称:" + file.getPath());
        System.out.println("文件绝对名称:" + file.getAbsolutePath());
    }

    private static void fileMethod() {
        String basePath = "D:\\file_test\\";
        String fileName = "a.md";
        File file = new File(basePath, fileName);
        System.out.println(file);
        System.out.println("文件/目录名称:" + file.getName());
    }
}

文件/目录操作

import java.io.File;
import java.io.IOException;

/**
 * Create by xiye on 2019/12/3 15:44
 */
public class Demo2_文件操作 {
    public static void main(String[] args) {
        File dir = new File("D:/file_test/");
        // 是否存在文件/目录
        if (dir.exists()) {
            System.out.println("目录已存在,删除:" + dir.delete());
        }
        // mkdir()只能创建一级没有存在的目录,如需多级创建,使用mkdirs()
        System.out.println("创建目录" + dir.getAbsolutePath() + ":" + dir.mkdir());
        // 是一个目录
        if (dir.isDirectory()) {
            File file = new File(dir, "a.md");
            // 存在文件
            if (file.exists() && file.isFile()) {
                System.out.println("删除文件" + file.getAbsolutePath() + ":" + file.delete());
            }
            try {
                // 创建文件
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

遍历当前一级文件/目录

import java.io.File;
import java.util.Arrays;

/**
 * Create by xiye on 2019/12/3 16:06
 */
public class Demo3_文件遍历 {
    public static void main(String[] args) {
        File file = new File("E:/");
        // 只能获取当前同一级的文件/目录
        File[] files = file.listFiles();
        String[] dirs = file.list();

        System.out.println(Arrays.toString(files));
        System.out.println(Arrays.toString(dirs));
    }
}

递归遍历多级文件

import java.io.File;

/**
 * Create by xiye on 2019/12/3 16:36
 */
public class Demo4_递归 {
    public static void main(String[] args) {
        //System.out.println("10! = " + mul(10));
        //System.out.println("10+ = " + add(10));


        File file = new File(new File("").getAbsolutePath());
        getFilePath(file);
    }

    private static void getFilePath(File file) {
        // 设置文件过滤器
        File[] files = file.listFiles(f -> f.getName().endsWith(".java") || f.isDirectory());

        if (files != null) {
            for (File f : files) {
                if (f.isFile()) {
                    System.out.println("文件:" + f.getAbsolutePath());
                } else {
                    // 是文件夹就递归
                    getFilePath(f);
                }
            }
        }
    }

    public static int mul(int n) {
        if (n == 1) {
            return 1;
        }
        return n * mul(n - 1);
    }

    public static int add(int n) {
        if (n == 1) {
            return 1;
        }
        return n + add(n - 1);
    }
}