【JavaSE】Java基础语法(三十三):File 一文详解

news/2025/2/14 8:14:35/

文章目录

  • 1. File类概述和构造方法
  • 2. 绝对路径和相对路径
  • 3. File类创建功能【应用】
  • 4. File类删除功能【应用】
  • 5. File类判断和获取功能【应用】
  • 6. 6File类练习一【应用】
  • 7. File类练习二【应用】


在这里插入图片描述

1. File类概述和构造方法

  • File类介绍

    • 它是文件和目录路径名的抽象表示
    • 文件和目录是可以通过File封装成对象的
    • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也
    • 可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的
  • File类的构造方法
    在这里插入图片描述

  • 示例代码

    public class FileDemo01 {public static void main(String[] args) {//File(String pathname): 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例File f1 = new File("E:\\snow\\java.txt");System.out.println(f1);//File(String parent, String child): 从父路径名字符串和子路径名字符串创建新的 File实例File f2 = new File("E:\\snow","java.txt");System.out.println(f2);//File(File parent, String child): 从父抽象路径名和子路径名字符串创建新的File实例File f3 = new File("E:\\snow");File f4 = new File(f3,"java.txt");System.out.println(f4);}
    }
    

2. 绝对路径和相对路径

  • 绝对路径
    是一个完整的路径,从盘符开始
  • 相对路径
    是一个简化的路径,相对当前项目下的路径
  • 示例代码
    public static void main(String[] args) {// 是一个完整的路径,从盘符开始File file1 = new File("D:\\snow\\a.txt");// 是一个简化的路径,从当前项目根目录开始File file2 = new File("a.txt");File file3 = new File("模块名\\a.txt");
    }
    

3. File类创建功能【应用】

  • 方法分类
    在这里插入图片描述

  • 示例代码

public class FileDemo02 {public static void main(String[] args) throws IOException {//需求1:我要在E:\\snow目录下创建一个文件java.txtFile f1 = new File("E:\\snow\\java.txt");System.out.println(f1.createNewFile());System.out.println("--------");//需求2:我要在E:\\snow目录下创建一个目录JavaSEFile f2 = new File("E:\\snow\\JavaSE");System.out.println(f2.mkdir());System.out.println("--------");//需求3:我要在E:\\snow目录下创建一个多级目录JavaWEB\\HTMLFile f3 = new File("E:\\snow\\JavaWEB\\HTML");// System.out.println(f3.mkdir());System.out.println(f3.mkdirs());System.out.println("--------");//需求4:我要在E:\\snow目录下创建一个文件javase.txtFile f4 = new File("E:\\snow\\javase.txt");// System.out.println(f4.mkdir());System.out.println(f4.createNewFile());}
}

4. File类删除功能【应用】

  • 方法分类
    在这里插入图片描述
    只能删除文件或者空文件夹

  • 示例代码

public class FileDemo03 {public static void main(String[] args) throws IOException {// File f1 = new File("E:\\snow\\java.txt");//需求1:在当前模块目录下创建java.txt文件File f1 = new File("myFile\\java.txt");// System.out.println(f1.createNewFile());//需求2:删除当前模块目录下的java.txt文件System.out.println(f1.delete());System.out.println("--------");//需求3:在当前模块目录下创建snow目录File f2 = new File("myFile\\snow");// System.out.println(f2.mkdir());//需求4:删除当前模块目录下的snow目录System.out.println(f2.delete());System.out.println("--------");//需求5:在当前模块下创建一个目录snow,然后在该目录下创建一个文件java.txtFile f3 = new File("myFile\\snow");// System.out.println(f3.mkdir());File f4 = new File("myFile\\snow\\java.txt");// System.out.println(f4.createNewFile());//需求6:删除当前模块下的目录snowSystem.out.println(f4.delete());System.out.println(f3.delete());}
}

5. File类判断和获取功能【应用】

  • 判断功能
    在这里插入图片描述

  • 获取功能
    在这里插入图片描述

  • 示例代码

    public class FileDemo04 {public static void main(String[] args) {//创建一个File对象File f = new File("myFile\\java.txt");// public boolean isDirectory():测试此抽象路径名表示的File是否为目录// public boolean isFile():测试此抽象路径名表示的File是否为文件// public boolean exists():测试此抽象路径名表示的File是否存在System.out.println(f.isDirectory());System.out.println(f.isFile());System.out.println(f.exists());// public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串// public String getPath():将此抽象路径名转换为路径名字符串// public String getName():返回由此抽象路径名表示的文件或目录的名称System.out.println(f.getAbsolutePath());System.out.println(f.getPath());System.out.println(f.getName());System.out.println("--------");// public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组File f2 = new File("E:\\snow");File[] fileArray = f2.listFiles();for(File file : fileArray) {// System.out.println(file);// System.out.println(file.getName());if(file.isFile()) {System.out.println(file.getName());}}}
    }
    

6. 6File类练习一【应用】

  • 案例需求
    在当前模块下的aaa文件夹中创建一个a.txt文件

  • 实现步骤

    • 创建File对象,指向aaa文件夹
    • 判断aaa文件夹是否存在,如果不存在则创建
    • 创建File对象,指向aaa文件夹下的a.txt文件
    • 创建这个文件
  • 代码实现

    public class Test1 {public static void main(String[] args) throws IOException {//练习一:在当前模块下的aaa文件夹中创建一个a.txt文件/* File file = new File("filemodule\\aaa\\a.txt");file.createNewFile();*///注意点:文件所在的文件夹必须要存在.//1.创建File对象,指向aaa文件夹File file = new File("filemodule\\aaa");//2.判断aaa文件夹是否存在,如果不存在则创建if(!file.exists()){//如果文件夹不存在,就创建出来file.mkdirs();}//3.创建File对象,指向aaa文件夹下的a.txt文件File newFile = new File(file,"a.txt");//4.创建这个文件newFile.createNewFile();}
    }
    

7. File类练习二【应用】

  • 案例需求
    删除一个多级文件夹

  • 实现步骤

    • 定义一个方法,接收一个File对象
    • 遍历这个File对象,获取它下边的每个文件和文件夹对象
    • 判断当前遍历到的File对象是文件还是文件夹
    • 如果是文件,直接删除
    • 如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递
    • 参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹
  • 代码实现

    public class Test2 {public static void main(String[] args) {//练习二:删除一个多级文件夹//delete方法//只能删除文件和空文件夹.//如果现在要删除一个有内容的文件夹?//先删掉这个文件夹里面所有的内容.//最后再删除这个文件夹File src = new File("C:\\Users\\apple\\Desktop\\src");deleteDir(src);}//1.定义一个方法,接收一个File对象private static void deleteDir(File src) {//先删掉这个文件夹里面所有的内容.//递归 方法在方法体中自己调用自己.//注意: 可以解决所有文件夹和递归相结合的题目//2.遍历这个File对象,获取它下边的每个文件和文件夹对象File[] files = src.listFiles();//3.判断当前遍历到的File对象是文件还是文件夹for (File file : files) {//4.如果是文件,直接删除if(file.isFile()){file.delete();}else{//5.如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递deleteDir(file);//参数一定要是src文件夹里面的文件夹File对象}}//6.参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹src.delete();}
    }
    

在这里插入图片描述


http://www.ppmy.cn/news/103392.html

相关文章

快速求质因子

快速求质因子 利用线性筛法求解质因子。小技巧:时间复杂度分析 题目传送门 首先明确,1不是质数,故质因子中不包含1。 利用线性筛法求解质因子。 bool isPrime[100005] {0}; int prime[100005] {0}; int lpf[100005] {0}; int tot 0; int…

【AGC】云监控日志服务查询不到Logger日志相关问题

【关键字】 AGC、云监控、日志服务 【问题描述】 开发者反馈在使用AGC云监控,填写了Logger日志,但是在云监控的日志服务查不到的问题。具体如下所述: 云函数按要求写了Logger日志,但是在云监控的日志服务页面查询不到&#xff…

【Vue】笔记一:vue技术栈详解

vue技术栈详解 1. Vue框架2. Vue Router3. Vuex4. Axios5. Element UI6. Nuxt.js7. TypeScript Vue技术栈主要包含Vue框架本身以及一些常用的Vue生态技术,下面一一进行介绍。 1. Vue框架 Vue框架是构建用户界面和单页面应用程序的核心框架,主要提供以下…

Linux:CentOS:进程查看和控制

查看 ps 查看静态的进程统计信息top查看动态的进程排名信息pgrep根据特定条件查询进程 PID 信息pstree以树形结构列出进程信息 S ---休眠 R ---运行 Z ---僵死&#xff08;应予以手动终止&#xff09; < ---高优先级 N ---低优先级 …

智慧物流货运系统源码,网络货运平台系统源码,货运系统开发源码部署

一套结合货主、平台、实际承运人多方业务场景&#xff0c;构建人、车、货、企一体的标准化网络货运平台系统源码。 文末获取联系 平台服务于货主与司机&#xff0c;进行服务对接&#xff0c;为货主节省时间找车&#xff0c;为司机找货获得利润。 货主端&#xff1a;货车主在线发…

【网络协议详解】——电子邮件系统协议(学习笔记)

目录 &#x1f552; 1. 电子邮件系统概述&#x1f552; 2. 简单邮件传送协议SMTP&#x1f552; 3. SMTP协议的命令和响应&#x1f558; 3.1 命令&#x1f564; 3.1.1 HELO&#x1f564; 3.1.2 MAIL FROM&#x1f564; 3.1.3 RCPT TO&#x1f564; 3.1.4 DATA&#x1f564; 3.1.…

客服配置-shopro

客服配置 注意事项 shopro客服系统 采用 workerman 的 gateway-worker 作为服务基础&#xff0c;请先安装 gateway-worker 扩展包shopro商城 已不再支持 workerman 在线客服插件 安装部署 安装扩展包 composer require workerman/gateway-worker:~3.0 删除禁用函数(如有未列…

TCP 和 UDP 在哪些场景下会被使用?

传输层是计算机网络体系结构中的关键层次之一&#xff0c;主要负责向两个主机中的进程之间的通信提供服务。传输层在终端用户之间提供透明的数据传输&#xff0c;向上层提供可靠的数据传输服务。它在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输…