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

相关内容

热门资讯

顾阳:扩大有效投资,怎么干?   长期从事经济报道,有很多朋友问我,为什么以前一用就灵的投资,如今却屡屡失灵?是不是传统的投资、消...
着力建设舒适便利的宜居城市——...   新华社北京7月21日电题:着力建设舒适便利的宜居城市——深入贯彻落实中央城市工作会议精神述评之五...
全国铁路暑运累计发送旅客超3亿...   记者今天(22日)从国铁集团获悉,自7月1日暑运启动以来至21日,全国铁路累计发送旅客3.03亿...
新修订的反不正当竞争法如何应对...   原标题:新修订的反不正当竞争法回应“内卷式”竞争、网络不正当竞争行为等新问题——  保护公平竞争...
陈芋汐第五次参加世锦赛 依然难...   陈芋汐第五次参加世锦赛,依然难掩兴奋:“希望有好的表现,让自己满意”。(编辑:小盛)#陈芋汐 #...
一男子带榴莲坐网约车 司机被熏...   7月22日,四川内江何先生打车回家,将朋友送的榴莲顺手放在副驾座位下。司机全程强忍不适开车,最终...
中国足协将组建国家电子竞技足球...   7月22日,中国足协网站发布《中国足球协会关于征集国家电子竞技足球队合作赛区的通知》。其中提到中...
孙女出生爷爷塞来10万现金!爸...   近日,河南周口,孙女出生3小时,爷爷塞来10万现金!爸爸笑开花,网友吵翻天:“别人家爷爷”、“纯...
曾被网友评为“最难喝饮料”之一...   曾被网友评为“最难喝饮料”之一,5元红色尖叫炒到8900元一箱,卖家称临期红色尖叫为“绝版收藏品...
民航版“12306”上线! 近日,航旅纵横App正式上线“民航官方直销平台”功能,用户可在单一界面完成多家航司直销机票的比价和购...