File文件操作

什么是File

File代表的就是我们磁盘中的文件或者文件夹

文件操作

public class Test {
    public static void main(String[] args) {
        fileOpe();
    }
    //分隔符
    public static void separator(){
        System.out.println("路径分隔符:"+File.pathSeparator);//;
        System.out.println("名称分隔符:"+File.separator);//\
    }
    //文件操作
    public static void fileOpe(){
        try{
            //创建文件
            //如果给的是相对路径的话那么文件就会在当前文件夹创建
            File file = new File("E:\\javadoc\\javase\\fileOne.txt");//构建File实例化,但是没有创建文件
            File fileTwo = new File("E:\\javadoc\\javase\\fileTwo.txt");//构建File实例化,但是没有创建文件
            if(!file.exists() || !fileTwo.exists()){//判断当前问价你是否存在,存在为true,不存在为false
                file.createNewFile();//创建文件
                fileTwo.createNewFile();
            }
            //删除文件
            //System.out.println(file.delete());//返回值是boolean删除成功true否则为false
            //使用jvm删除文件
            //file.deleteOnExit();
            //Thread.sleep(5000);//线程休眠5秒
            //判断文件
            System.out.println(file.canWrite());//判断是否能写
            System.out.println(file.isFile());//是否是文件
            System.out.println(file.canRead());//判断文件是否可读
            System.out.println(file.isHidden());//判断文件是否隐藏
            //获取文件的一些信息
            System.out.println(file.getAbsolutePath());//获得文件的绝对路径
            System.out.println(file.getPath());//获得父目录
            System.out.println(file.getName());//获得文件名
            System.out.println(file.length());//获得文件长度
            System.out.println(file.lastModified());//获得文件创建时间
            System.out.println(file.getParentFile());//获得父目录路径
            //此方法用于比较两个文件路径或文件,无论它们在字典上是否相等。这意味着如果返回0,则两个文件相等;如果返回负值,则第一个参数将小于给定参数;如果返回大于0,则第一个参数将大于0。
            System.out.println(file.compareTo(fileTwo));
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

文件夹操作

 public static void dire(){
        File file = new File("E:\\javadoc\\javase\\aaa\\bbb\\ccc");
        //创建
        if(!file.exists()){
//            file.mkdir();//创建单级目录
            System.out.println(file.mkdirs());//创建多级目录
        }
        //删除
        //file.delete();//只能删除空目录,而且只能删除一级也就是ccc目录
        //获取信息
        /*System.out.println(file.getAbsolutePath());//获得文件绝对路径
        System.out.println(file.getPath());//获得路径
        System.out.println(file.getName());//获得文件名
        System.out.println(file.getParent());//获得父目录
        //判断
        System.out.println(file.isDirectory());//是否是文件夹
        System.out.println(file.isHidden());//是否是隐藏*/
        //遍历
        File file1 = new File("E:\\BaiduNetdiskDownload");
        String[] list = file1.list();
        System.out.println("___________");
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("____________");
        File[] files = file1.listFiles();
        for (File file2 : files ) {
            System.out.println(file2);
        }
    }

注意删除文件夹只能删除空目录

FileFiilter接口的使用

public static void fileFilter(String filePath){
        File file = new File(filePath);
        //过滤文件
       /*
       为false是全部拦截,为true是则放行
        */
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                //判断后缀为zip
                if (pathname.getName().endsWith(".zip")) {
                    return true;
                }
                return false;
            }
        });
        for (File file1 : files) {
            System.out.println(file1);
        }
    }

递归遍历文件夹

public static void recursionFile(File file){
        File[] files = file.listFiles();//得到当前文件夹中的所有文件
        if(files != null && files.length >0){//判断文件夹是否为空,以及长度是否大于0
            for (File file1 : files) {//遍历文件夹
                if(file1.isDirectory()){//判断是不是文件夹
                    recursionFile(file1);
                }else {
                    System.out.println(file1.getParent());
                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值