【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);//如果是文件夹 继续递归下去即可}}}
}

相关内容

热门资讯

“冷资源”持续释放“热效应” ...   央视网消息:随着气温走低,冬奥小城河北崇礼的滑雪场陆续“开板”迎客,吸引了全国各地的滑雪爱好者前...
视频丨第十五届全运会香港赛区准...   第十五届全国运动会,是全运会历史上第一次走进香港、澳门。全运会期间,香港将承办场地自行车、击剑、...
期待,就在今晚!   今晚  第十五届全运会开幕式  将在广东奥林匹克体育中心举行  虽然在近两万平方米的舞台上  没...
2025中国新媒体大会即将召开...   2025中国新媒体大会将于11月11日至13日在湖南长沙召开,中国记协新媒体专业委员会各成员单位...
韩国全罗南道附近海域一中国渔船...   韩国海警部门9日通报,当天早晨,全罗南道可居岛附近海域一艘中国渔船倾覆,船上共11人,目前6人获...
支付宝发布重要提醒!赶紧打开这...   近期,网络诈骗又有新骗局:  有骗子以“XX超市一日会员卡”充值为诱饵,骗取消费者账户与密码用于...
【国际微访谈】中国美国商会会长...     国际在线报道:11月6日至9日,2025年世界互联网大会乌镇峰会举行,全球互联网迎来“乌镇...
全景视界|VR漫游带你逛进博   第八届中国国际进口博览会  11月5日至10日在上海举办  展览面积和企业总数均创历史新高  在...
最新!油价调整通知   11月10日24时(明晚)  新一轮成品油调价窗口开启  根据成品油的调价规则,在11月10日2...
中国经济与世界经济在这里交汇交...   当黄浦江畔再迎全球聚光灯,第八届中国国际进口博览会如期而至,以“新时代,共享未来”的不变初心,架...