java File文件操作

1. 概述

  • 目的:存储数据(文件)
  • 描述读写哪个文件

2. 构造方法

  • 用来描述一个文件夹或文件
    • 可以描述一个不是真实存在的文件夹或文件
File(String path);
File(String parent,String child);
File(File parent,String child);

3. 绝对路径和相对路径

3.1 绝对路径

  • 以盘符开始的路径
File src = new File("E:\\src");

3.2 相对路径

  • 不以盘符开始的路径
ile src = new File("JavaEE\\22.txt");
使用软件编程时,如idea,在真正运行时会自动补全前面的路径

4. 创建和删除

4.1 创建

  • 使用File类中的方法来创建文件和文件夹
file.createNewFile();//创建文件
file.mkdirs();//创建多级文件夹
file.mkdir();//创建单级文件夹

4.2 删除

  • 使用File类中的delete方法来删除文件
  • 只能删除文件和空文件夹
  • 文件夹内有文件需要先删除文件夹内的文件在删除文件夹
file.delete()
  • 使用递归的方法删除多级文件夹和文件
 private static void deleteDir(File src) {
        File[] files = src.listFiles();
        //判断是否是文件
        for (File file : files) {
            //文件则删除
            if (file.isFile()){
                file.delete();
            }else{
                //否则递归
                deleteDir(file);
            }
        }
        //删除
        src.delete();
    }

5. 获取和判断方法

5.1 判断类型

file.isFile()
file.isDeractory();

5.2 判断是否真实存在

file.exists()

5.3 获取名字

file.getName

6. File和FileList

  • 将文件放入list集合中方便操作

  • 统计文件类型(广度查找)

 		//定义file对象
        File src = new File("E:\\src");
        //定义三个统计变量
        int countTxt = 0;
        int countPng = 0;
        int countOother = 0;
        //定义linkedlist集合暂存
        LinkedList<File> list = new LinkedList<>();
        list.add(src);
        //循环对元素进行操作
        while(true){
            //取第一个元素
            File file = null;
            try {
                file = list.removeFirst();
            } catch (Exception e) {

            }
            //判断是否有元素
            if (file == null){
                //为空结束循环
                break;
            }else{
                //判断是文件还是文件夹
                if (file.isFile()){
                    //是文件统计
                    if (file.getName().endsWith(".txt")){
                        countTxt++;
                    }else if(file.getName().endsWith(".png")){
                        countPng++;
                    }else{
                        countOother++;
                    }
                }else {
                    //是文件夹,内容放入队列
                    File[] files = file.listFiles();
                    for (File file1 : files) {
                        list.add(file1);
                    }
                }
            }
            //打印结果
            System.out.println("txt文件数量:" + countTxt + "个");
            System.out.println("png文件数量:" + countPng + "个");
            System.out.println("其他文件数量:" + countOother + "个");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aming_sth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值