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

news2024/12/22 19:02:07

文章目录

  • 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.txt
		File f1 = new File("E:\\snow\\java.txt");
		System.out.println(f1.createNewFile());
		System.out.println("--------");
		
		//需求2:我要在E:\\snow目录下创建一个目录JavaSE
		File f2 = new File("E:\\snow\\JavaSE");
		System.out.println(f2.mkdir());
		System.out.println("--------");
		
		//需求3:我要在E:\\snow目录下创建一个多级目录JavaWEB\\HTML
		File f3 = new File("E:\\snow\\JavaWEB\\HTML");
		// System.out.println(f3.mkdir());
		System.out.println(f3.mkdirs());
		System.out.println("--------");
		
		//需求4:我要在E:\\snow目录下创建一个文件javase.txt
		File 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.txt
		File f3 = new File("myFile\\snow");
		// System.out.println(f3.mkdir());
		File f4 = new File("myFile\\snow\\java.txt");
		// System.out.println(f4.createNewFile());
		
		//需求6:删除当前模块下的目录snow
		System.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.coloradmin.cn/o/584499.html

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

相关文章

阿里面试测试工程师,水太深,我把握不住了......

前言 去阿里面试测试工程师,这里面水太深,什么未来规划,职业发展的东西都是虚拟的,作者还太年轻,没有那个经历,把握不住。项目只有几个,开心快乐就行,不PK,文明PK。 很多…

组合总和 II

1题目 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates [10,1…

搭建LightPicture开源免费图床系统「公网远程控制」

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 转载自cpolar极点云的文章:【搭建私人图床】使用LightPicture开源…

Parasoft亮相上海国际嵌入式展

全球自动化软件测试解决方案的领导者Parasoft宣布参加6月14日至16日在上海举行的首届embedded world China上海国际嵌入式展,此次Parasoft联合检测认证领域的领导者-莱茵技术(上海)有限公司共同参展,为嵌入式行业提供符合功能安全…

电子表格的武侠江湖里,有VBA加持的Excel,也只能算一把菜刀

Excel,都用过吧? 没用过肯定也听说过。 这可是Windows里颇具传奇色彩的软件,堪称一把九天陨铁淬炼而成的菜刀。 普通人,用它做表格, 进行简单的数据汇总。 职场人,继续用它做表格, 开始求和…

请问下大家PMP证书值得考嘛?

做项目的去考,项目经理、产品经理这些,或者有往项目管理领域发展的去考。其他行业有空可以学习下 不一定要考证了。 PMP证书更多的是 “敲门砖”作用,大部分公司招聘的门槛都要去了这个证书。 当然现在PMP管理模式也很热门,各大…

国产的高精度ADC HX711 CS1237 TM7707等如何选型

最近小伙伴们咨询我,国产很多高精度的ADC,如何选型使用呢?这里我们主要讨论几款24位差分输入。 ADC/DAC相关名词解释 ADC输入范围ADC转换速度ADC稳定位数 在我们选的时候主要考虑上面三个参数 ADC参数对比 型号输入范围输出速率建立时间PG…

网页JS自动化脚本(八)使用网页专属数据库indexedDB进行数据收集

我们在网页上进行的活动,往往都需要进行收集一些简单的数据,但是因为浏览器的安全原因,浏览器基本上是无法与本地的操作系统直接产生数据交互的,这本来就是一个由于安全问题生产的无解问题,在浏览器里面是内置了几种数据库的,其中一种就是indexedDB,可以用来储存一些非常小的数…

多主题插件上线!开源的 API 管理工具居然这么有意思!

之前我一直在用的开源API 管理工具——Postcat 最近上线了新的主题插件,真的有意思! 之前就用用户提 issue 没想到终于安排上了,给这个项目点赞! 挑几款我偏好的主题插件,简单看看 第一款,【VSCode 主题】&…

鸿蒙Hi3861学习二十-编译构造

一、简介 在使用编译构造子系统前,应了解如下基本概念: 子系统 子系统是一个逻辑概念,它由一个或多个具体的组件构成、OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、架构层和应用层。系统功能按照…

电商用户行为分析__求前3点击量

测试代码 package Data_textimport org.apache.flink.streaming.api.TimeCharacteristic import org.apache.flink.streaming.api.functions.timestamps.BoundedOutOfOrdernessTimestampExtractor import org.apache.flink.streaming.api.scala._ import org.apache.flink.st…

KWin事件总结和相关类介绍

KWin事件总结和相关类介绍 目录 KWin事件总结和相关类介绍 1、事件相关模块 1.1 事件类型 1.2 事件管理 1.3 事件过滤器 2、KWin其他模块整理 2.1 窗口 2.2 Item 2.3 scene 3、事件传递流程 3.1 事件整体流程 3.2 事件传递时序图 4、事件流程样例 4.1 鼠标拖动修…

英伟达发布 532.03 驱动,为新游戏和新显卡带来支持

继英伟达 RTX 4060系列显卡陆续发售后,又发布了 GeForce Game Ready 532.03 WHQL 驱动,驱动人生整理了一下NVIDIA GeForce Game Ready 532.03 WHQL 驱动带来的支持与优化。 GeForce Game Ready 532.03 WHQL 驱动主要同步支持 RTX 4060 Ti 8G 显卡&#…

Hadoop3.1.4分布式搭建

Hadoop3.1.4分布式搭建 1. 基础环境准备 1.1 实验网络规划 hostnameip addrroleotherk8s-m13310.10.10.133NameNode, DataNode, NodeManageerk8s-m13410.10.10.134SecondaryNameNode, DataNode, NodeManageerk8s-m13510.10.10.135ResourceManager, DataNode, NodeManageerk8…

Java 多线程基础

文章目录 Java 多线程基础一、相关概念1. 程序、进程和线程2. 线程调度3. 并行与并发 二、线程的创建1. 继承 Thread 类2. 实现 Runnable 接口3. 实现 Callable 接口4. 线程池 三、Thread 类常用方法1. 构造方法2. 常用方法3. 其他方法 四、线程的生命周期五、线程同步1. 线程安…

Serverless 是什么?

文章目录 Serverless 是什么?Serverless 的前世今生面临挑战以应用为中心,无需运营基础架构自动伸缩为价值付费内置高可用和高安全 Serverless 行业及应用场景IT 自动化数据处理微服务架构IoT 后端系统游戏 Serverless 解决方案推荐SaaS Boot适合客户方案…

代码审查 idea

目录 文档 alibaba java coding guidelines 插件下载 Upsource 文档 https://download.csdn.net/download/qq_41169544/87545171https://download.csdn.net/download/qq_41169544/87545171 alibaba java coding guidelines 插件下载 Alibaba Java Coding Guidelines安装使用…

【珍藏版】SolVES模型的生态系统服务功能社会价值评估及拓展

生态系统服务是人类从自然界中获得的直接或间接惠益,可分为供给服务、文化服务、调节服务和支持服务4类,对提升人类福祉具有重大意义,且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目(Millennium Ecosystem Asse…

OSI(Open System Interconnect)开放系统互联参考模型-7层模型(改版)

OSI(Open System Interconnect)开放系统互联参考模型-7层模型 1. OSI七层模型1.1 基本概念1.2 七层模型的划分1.3 数据传输过程 2. TCP/IP四层模型2.1 基本概念2.2 四层模型的划分2.3 数据传输过程 3. 涉及的协议及概念3.1 MTU1. 概念2. 关于mtu取值3. 修…

Anchor Free目标检测方法

faster rcnn anchor:尺寸比例固定 yolo anchor尺寸确定:通过聚类 Anchor Free方法 anchor的简单理解:在特征图上的模板,含有的信息为检测框的大小和尺度 Anchor based 方法小结 Faster rcnn(左上) yolo v3(右上) ssd (中) re…