【Java寒假打卡】Java基础-File
创始人
2024-05-09 13:22:47
0

【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.txtFile 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 hm = new HashMap<>();getCount(hm,file);System.out.println(hm);}private static void getCount(HashMap 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);//如果是文件夹 继续递归下去即可}}}
}

相关内容

热门资讯

公司给300多名员工发放超20... 最高年终奖160万元!12月28日,总部位于湖北荆门的洋丰集团股份有限公司举行2025年总结表彰大会...
【好评中国】2025“数”说奋...   当2025年的时光卷轴缓缓收起,一组组硬核数据跃然纸上:8项世界纪录被刷新、483万个5G基站筑...
2025年终经济观察|稳企业强...   新华社北京12月28日电 题:稳企业强信心 筑牢高质量发展根基  新华社记者赵文君、唐诗凝、王悦...
一切外来干涉触盾必亡!一切谋独... 快速机动 立体布势 体系封控 一切外来干涉触盾必亡! 一切谋独宵小遇盾即毙! 东部战区发布军事演习主...
墨西哥列车脱轨事故已致13人死...   墨西哥军方28日发布公告说,当日在墨南部发生的列车脱轨事故,目前已造成13人死亡、98人受伤。(...
韩国检方对尹锡悦、金建希等76...   负责调查韩国前第一夫人金建希案件的特检组29日发布最终调查结果,对包括前总统尹锡悦、金建希等76...
四中全会关键词解读⑦:人口高质...   党的二十届四中全会是在向第二个百年奋斗目标进军的新征程上举行的一次十分重要的会议,全会审议通过了...
中国海事航警:12月30日08...   军事演习-中国海事航警  中国海事航警,12月30日08时至18时,在以下海域进行重要军事演习,...
铭记历史荣耀 积蓄统一大势——...   记者尚昊、李寒芳、赵博  历史回响激荡,时代步伐铿锵。岁末回望,2025年两岸关系在复杂严峻的风...
“两个毫不动摇”的理论创新与实...   坚持和完善社会主义基本经济制度,是我国经济发展的制度基础,是习近平经济思想的重要内容。党的二十届...