【Java寒假打卡】Java基础-File

news2024/11/28 21:50:58

【Java寒假打卡】Java基础-File

    • 概述-三种构造方法
    • 绝对路径和相对路径
    • File的创建功能
    • File的删除功能
    • File的判断和获取功能
    • listFile方法
    • 练习1:在当前模块下面aaa文件夹创建一个文件a.txt
    • 练习2:删除一个多级文件夹
    • 练习3:统计一个文件夹中每一种文件的个数

概述-三种构造方法

在这里插入图片描述

package com.hfut.edu.test9;

import java.io.File;

public class test1 {
    public static void main(String[] args) {
        method1();
        method2();
        method3();
    }


    private static void method3(){
        File file1 = new File("D:\\heima");// 创建父路径文件对象
        String path = "1.txt";
        File file = new File(file1,path);

        System.out.println(file);
    }

    // 通过指定的路径字符串 创建文件对象
    private static void method1(){
        // 第一种文件创建方法
        String path = "D:\\heima\\1.txt";// 使用转义字符

        // 创建文件对象
        File file = new File(path);// 将指定的路径名字字符串 转换为抽象路径名
        System.out.println(file);
    }

    // 通过父路径以及子路径拼接 来创建文件对象
    private static void method2(){
        // 将两个路径进行拼接
        String path1 = "D:\\heima";
        String path2 = "1.txt";

        File file = new File(path1,path2);// 将两个路径进行拼接
        System.out.println(file);
    }
}


绝对路径和相对路径

在这里插入图片描述

File的创建功能

在这里插入图片描述

  • creatfile
  • 如果文件存在 那么创建失败 返回false
  • 如果文件不存在 那么创建成功 返回true
  • creatNewFile 不管调用有没有后缀名 只能创建文件
package com.hfut.edu.test9;

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

public class terst2 {
    public static void main(String[] args) throws IOException {
        // 如果文件存在 那么创建失败  返回false
        // 如果文件不存在 那么创建成功  返回true
        // creatNewFile  不管调用有没有后缀名  只能创建文件

        File file1 = new File("D:\\heima\\2.txt");
        boolean result = file1.createNewFile();// 创建指定路径的指定文件  抛出异常
        System.out.println(result);
    }
}


  • mkdir 创建单级文件夹
  • mkdirs 创建多级文件夹
package com.hfut.edu.test9;

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

public class terst2 {
    public static void main(String[] args) throws IOException {
        // 如果文件存在 那么创建失败  返回false
        // 如果文件不存在 那么创建成功  返回true
        // creatNewFile  不管调用有没有后缀名  只能创建文件

        File file1 = new File("D:\\heima\\aaa");

        // mkdir创建单级文件夹
        boolean result = file1.mkdir();
        System.out.println(result);

        // mkdirs创建多级文件夹
        File file2 = new File("D:\\heima\\aaa\\bbb\\cccf");

        boolean r = file2.mkdirs();
        System.out.println(r);

    }
}

File的删除功能

在这里插入图片描述

  • 不走回收站的
  • 如果删除的是文件 直接删除 如果删除的是文件夹 只能删除空文件夹
  • 总结:只能删除文件和空文件夹
package com.hfut.edu.test9;

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

public class terst2 {
    public static void main(String[] args) throws IOException {

        File file1 = new File("D:\\heima\\aaa");
        boolean result = file1.delete();// 删除空文件夹
        System.out.println(result);
    }
}


File的判断和获取功能

在这里插入图片描述

package com.hfut.edu.test9;

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

public class terst2 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("D:\\heima\\1.txt");
        boolean result1 = file1.isFile();// 判断是不是文件
        boolean result2 = file1.isDirectory();// 判断是不是文件夹

        System.out.println(result1);
        System.out.println(result2);

        // 判断路径是否存在
        boolean result3 = file1.exists();
        System.out.println(result3);

        // getName() 如果调用者是文件 那么获取的是文件名和后缀名
        // 如果调用者是一个文件夹 那么获取的是文件夹的名字

        String name = file1.getName();
        System.out.println(name);
    }
}

listFile方法

在这里插入图片描述
在这里插入图片描述

练习1:在当前模块下面aaa文件夹创建一个文件a.txt

使用createNewFile创建文件的时候,文件所在的文件夹必须要存在

package com.hfut.edu.test9;

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

public class test3 {
    public static void main(String[] args) throws IOException {
        // 在当前模块的aaa文件夹下面创建a.txt

        File file = new File(".\\aaa");

        // 首先判断文件夹是否存在
        if(!file.exists()){
            // 如果文件夹不存在 就创建出来
            file.mkdirs();// 创建文件夹
        }

        // 使用凭借的方法创建文件对象
        File newFile = new File(file,"a.txt");

        // 抛出IO异常
        newFile.createNewFile();


    }
}

练习2:删除一个多级文件夹

package com.hfut.edu.test9;

import java.io.File;

public class test4 {
    public static void main(String[] args) {
        // 删除多级文件夹
        // 首先删除文件夹里面所有内容
        // 然后再删除这个文件夹

        File src = new File("D:\\heima\\aaa");
        deleteSrc(src);
    }

    private static void deleteSrc(File src) {

        // 先删除文件夹里面的所有内容
        // 首先遍历src中所有的文件或者文件夹对象
        File[] files = src.listFiles();

        for (File file : files) {

            if(file.isFile()){
                // 如果是一个文件 直接删除即可
                file.delete();
            }else{
                // 递归判断
                deleteSrc(file);// 如果是文件夹 递归删除即可
            }
        }

        // 最后删除文件夹
        src.delete();

    }
}


练习3:统计一个文件夹中每一种文件的个数

package com.hfut.edu.test9;

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

public class test9 {
    public static void main(String[] args) {
        // 使用map集合进行数据统计  
        File file = new File("D:\\heima");

        // 使用哈希集合存储每一种文件的出现次数
        HashMap<String,Integer> hm = new HashMap<>();
        getCount(hm,file);
        System.out.println(hm);
    }

    private static void getCount(HashMap<String, Integer> hm, File file) {
        
        // 首先获取该文件夹下面的所有文件
        File[] files = file.listFiles();
        for (File file1 : files) {
            if(file1.isFile()){
                // 如果是文件
                // 获取文件名
                String fileName = file1.getName();
                String[] filenameArr = fileName.split("\\.");
                if(filenameArr.length == 2){
                    String fileEndName = filenameArr[1];// 获取文件后缀名
                    // 判断容器中有没有这种文件存在
                    if(hm.containsKey(fileEndName)){
                        // 将已经出现的次数获取出来
                        Integer count = hm.get(fileEndName);
                        count++;

                        // 将已经出现的次数覆盖掉
                        hm.put(fileEndName,count);
                    }
                    else {
                        // 不存在表示文件是第一次出现
                        hm.put(fileEndName,1);
                    }
                }


            }else{
                getCount(hm,file1);//如果是文件夹 继续递归下去即可
            }
        }
        
    }
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UE插件和项目目录结构学习笔记

Plugins插件的二种安装方式 1、安装到虚幻引擎&#xff08;推荐&#xff09; 转到虚幻引擎安装位置的插件文件夹 Engine/Plugins 将解压得到的插件文件夹放入Marketplace文件夹下&#xff08;如没有新建一个&#xff09;。 启动虚幻引擎打开项目&#xff0c;菜单->编辑->…

如何在线免费将PPT转PDF格式

我们经常会遇到制作演示文稿PPT的格式&#xff0c;但是这种格式一般在传阅的过程中稳定性都较差&#xff0c;所以很多人会选择转成PDF格式&#xff0c;那么有没有免费的处理方式呢&#xff1f; 打开浏览器搜索speedpdf找到并打开在线转换工具首页&#xff0c;选择主页上的PPT转…

Python表白妙招,把情书写进她的照片里

前言 我的好兄弟们&#xff0c;2022年可算是过去了&#xff0c;这不马上要过年了吗 就是说&#xff0c;各位兄弟有对象了吗&#xff0c;没有的回家还要面对亲戚的各种提问 退一步来说&#xff0c;有心仪的人吗&#xff0c;如果有的话&#xff0c;就来看看这篇 程序员的表白小…

【Vue + Koa 前后端分离项目实战7】使用开源框架==>快速搭建后台管理系统 -- part7 前端实现最新期刊管理【增删查改】

人生没有白走的路&#xff0c;每一步都作数。 对应后端部分章节回顾&#xff1a; 【Vue Koa 前后端分离项目实战5】使用开源框架&#xff1e;快速搭建后台管理系统 -- part5 后端实现最新期刊列表管理【增删查改】_小白Rachel的博客-CSDN博客 效果展示&#xff1a; 目录 一、…

少儿Python每日一题(15):回文数

原题解答 本次的题目如下所示: 【编程实现】 回文数是指一个像14641这样“对称”的数,即:将这个数的各位数字按相反的顺序重新排列后,所得到的数和原来的数一样。请编程求不同位数数字的回文数的个数。用户输入一个正整数M(2<M<7),M作为回文数的位数。要求输出M位…

【Javascript】高阶函数,JSON

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录高阶函数箭头函数apply函数JSON高阶函数 把函数作为参数&#xff0c;或者返回一个函数&#xff…

【并发】并发锁机制-深入理解synchronized(一)

【并发】并发锁机制-深入理解synchronized&#xff08;一&#xff09; synchronized 基础篇&#xff08;使用&#xff09; 一、Java共享内存模型带来的线程安全问题 1. 代码示例 2. 运行结果 3. 问题分析 4. 临界区&#xff08;Critical Section&#xff09; 5. 竞态条件…

【Go】内存模型中的内存可见性

前言 使用go必然会使用到协程以及其他的并发操作&#xff0c;初期学习的时候&#xff0c;经常在启动协程时操作变量出现问题&#xff0c;要么就是变量没更新&#xff0c;要么就是各种崩溃&#xff0c;或者vscode报告警之类的&#xff0c;于是浅看了一下Go的内存模型&#xff0…

离散制造业ERP系统对生产物料管理有哪些帮助?

在离散制造企业生产加工过程中&#xff0c;生产物料管理是一个至关重要的环节。车间物料能不能管控好&#xff0c;影响着整个产品的品质、工作效率及制造成本的控制等。离散制造业通常需要品类、属性繁多的原材料和配套件&#xff0c;而各类物料的及时供应十分重要&#xff1b;…

优思学院|QCC 是什么意思?有什么用?

QCC 的中文意思是质量控制圈&#xff0c;也有人称为品质圈。 质量控制圈&#xff08;QCC&#xff09;是来自日本的一种质量管理方法&#xff0c;这个概念的作者是石川馨、日本科学家和工程师联盟&#xff08;JUSE&#xff09;共同发明。 QCC的方法是建立由5-11名成员组成的小团…

【VUE2-01】vue2的起步

文章目录一、初识vue1.1vue.js的特点1.2什么是虚拟的dom&#xff1f;1.3为什么使用虚拟的dom1.4vue设计思想二、第一个vue应用如果想系统细致的学习&#xff0c;建议阅读vue的官方网站目前vue官网默认的是vue3的内容&#xff0c;此篇以vue2为基础开始学习一、初识vue 1.1vue.j…

电脑重装系统后没声解决步骤

电脑重装系统之后&#xff0c;发现声音功能&#xff0c;不能正常使用了。对于电脑小白来说&#xff0c;不知道该如何处理&#xff0c;下面就和大家说说重装系统后没声音怎么办呢?&#xff0c;其实完全可以自己处理这种情况&#xff0c;快来看看小白重装系统后没声解决方法吧! …

插入损耗——线对上的信号衰减

“您好&#xff0c;我需要您的帮助。我在测试长距离线缆的时候&#xff0c;插入损耗没有通过测试&#xff01;”这是在对铜缆布线进行验收测量时&#xff0c;我们经常能够听到的问题。针对这一情况&#xff0c;为了能提供更专业的支持&#xff0c;我们必须了解这一电气特性的基…

如何修改linux下的vim复制行数限制

vim-如何修改linux下的vim复制行数限制来自北方的小强正在努力成为资深数字IC搬砖工的搬砖工个人根目录下的.vimrc (~/.vimrc)添加如下内容:set viminfo1000,<600linux下&#xff0c;默认最多复制50行&#xff0c;上述修改即将限制改为600行。注意&#xff1a;1 如果.vimrc文…

Arduino固件库的离线安装方式

参考&#xff1a;https://www.cnblogs.com/hilary0614/p/libraries.html https://jingyan.baidu.com/article/9f7e7ec09d90906f281554e1.html&#xff0c;开发板管理器和管理库区别 Arduino 经常推出新的控制器&#xff0c;这些新的控制器可能不在现有的板子型号中&#xff0c;…

【Linux】Linux 项目自动化构建工具 -- make/makefile

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux 文章目录一、前言二、概念三、demo 实现四、原理与规则1、依赖关系和依赖方法① 感性理解② 深层理解…

回顾 2022

前言回顾过去的 2022 年&#xff0c;感觉自己学习了不少&#xff0c;输出的不多。适合 Golang 新手入门的项目 go-gin-api[1]&#xff0c;今年基本没更新&#xff0c;目前已收到 4.1k star&#xff0c;感谢大家的认可。关于健康今年室外跑步&#xff0c;跑了有 175 km&#xff…

什么蓝牙耳机音质好?发烧友力荐四款好音质蓝牙耳机

随着蓝牙技术的发展&#xff0c;现如今蓝牙耳机的音质越来越可以与有线耳机的音质相媲美了。音质作为选择蓝牙耳机的重要参考因素之一&#xff0c;在我们的日常生活中&#xff0c;不管是听歌、追剧、通话等&#xff0c;音质不一的蓝牙耳机都能带来不一样的听觉体验。下面&#…

提高1--数字三角形模型

1.摘花生 Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。 Hello Kitty只能向东或向南走,不…

Java基础知识复习

文章目录复习1. Java编译和运行2. Java运行环境3. Java注释4. Java中的打印5. 数据类型整形浮点型字符类型字节类型布尔类型数据类型转换强制类型转换隐式类型转换小结6. 变量命名规范7. 运算符算数运算符逻辑运算符移位运算符关系运算符8. switch9. 方法方法的重载可变参数变程…