java文件操作——File类

java文件操作类File

File类可以操作硬盘上的文件和文件夹。
File对象就是硬盘上的文件或者文件夹对象,也可以对文件进行创建,删除等操作。
File对象是文件和目录路径名的抽象表示。

在这里插入图片描述

绝对路径和相对路劲

绝对路径:从盘符开始

File file = new File("A:\\school\\src\\school\\chuangkou.java");

相对路径:相对当前项目下的路径

File file = new File("chuangkou.java");

File创建功能方法

在这里插入图片描述

File删除方法

在这里插入图片描述
删除目录时的注意事项:
delete方法直接删除不走回收站。
如果删除的是一个文件,直接删除。
如果删除的是一个文件夹,需要先删除文件夹中的内容,最后才能删除文件夹。

File判断和获取功能方法

在这里插入图片描述
高级:
listFiles方法注意事项:
当调用者不存在时,返回null当调用者是一个文件时,返回null
当调用者是一个空文件夹时,返回一个长度为0的数组
当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容
当调用者是一个需要权限才能进入的文件夹时,返回null

练习

package com.jifu.test.file;

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

public class StatisticalFiles {
    /**
     * 需求,统计指定目录下的子目录以及其他各种类型文件的数目
     *
     * @param args
     */
    public static void main(String[] args) {
        Map<String, Integer> total = new HashMap<>();
        File file = new File("Z:\\有道云\\ynote-desktop");
        File[] files = file.listFiles();

        for (File child : files
        ) {
            int num = 1;
            if (child.isDirectory()) {
                if (total.containsKey("dir")) {
                    num = total.get("dir");
                    num += 1;
                }
                //统计目录
                total.put("dir", num);
            } else {
                String fileEnd = child.getName().substring(child.getName().lastIndexOf(".")+1);
                String fileName = child.getName();
                if (fileName.endsWith(fileEnd)) {
                    if (total.containsKey(fileEnd)) {
                        num = total.get(fileEnd);
                        num += 1;
                    }
                    total.put(fileEnd, num);
                }
            }
        }
        total.forEach((s, integer) -> System.out.println(s + "----------" + integer));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值