java File类

File

package com.nocilantro.FileDemo;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Date;

public class Demo01 {

    public static void main(String[] args) throws IOException, InterruptedException {
        separator();
        fileOpe();
        directoryOpt();
    }

    // 分隔符
    public static void separator() {
        System.out.println("路径分隔符 " + File.pathSeparator);
        System.out.println("名称分隔符 " + File.separator);
    }

    // 文件操作
    public static void fileOpe() throws IOException, InterruptedException {
        // (1) create a file
        File file = new File("test.txt");
        if (!file.exists()) {
            boolean b = file.createNewFile();
            System.out.println(b);
        }

//        // (2) remove a file
//        // (2.1) delete方法
//        boolean b2 = file.delete();
//        System.out.println(b2);
//
//        // (2.2)使用jvm退出时删除
//        file.deleteOnExit();
//        Thread.sleep(10000);

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

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

    // 文件夹操作
    public static void directoryOpt() throws InterruptedException {
        // 创建
        File dir = new File("aaa//bbb//ccc");
        if (!dir.exists()) {
//            dir.mkdir(); // 只能创建单级目录
            boolean b = dir.mkdirs(); // 可以创建多级目录
            System.out.println("创建结果:" + b);
        }

        // 删除 (只删除最底层目录,并且是空目录)
        // (1)直接删除
//        boolean b2 = dir.delete();
//        System.out.println("直接删除结果:" + b2);
        // (2)使用jvm删除
//        dir.deleteOnExit();
//        Thread.sleep(5000);

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

        // 判断
        System.out.println(dir.isDirectory());
        System.out.println(dir.isHidden());

        // 遍历
        File dir2 = new File("/Users/leo/Desktop");
        String[] files1 = dir2.list();
        for (String file : files1) {
            System.out.println(file);
        }
        System.out.println("-------------");

        File[] files2 = dir2.listFiles(new FileFilter() { // 使用FileFilter接口过滤文件
            @Override
            public boolean accept(File pathname) {
                return pathname.getName().startsWith("2020");
            }
        });
        for (File file : files2) {
            System.out.println(file.getName());
        }
    }
}
package com.nocilantro.FileDemo;

import java.io.File;

/**
 * 递归遍历文件夹
 */
public class Demo02 {

    public static void main(String[] args) {
        listDir(new File("/Users/leo/Desktop/1-Other"));
        deleteDir(new File("aaa"));
    }

    public static void listDir(File dir) {
        File[] files = dir.listFiles();
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    listDir(file);
                } else {
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }

    public static void deleteDir(File dir) {
        File[] files = dir.listFiles();
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    deleteDir(file);
                } else {
                    // 删除文件
                    System.out.println(file.getAbsolutePath() + "删除: " + file.delete());
                }
            }
        }
        System.out.println(dir.getAbsolutePath() + "删除: " + dir.delete());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值