【Java】I/O流—File类:从0到1的全面解析

news2024/12/24 3:19:49

🎊专栏【Java】

🌺每日一句:看不清楚未来时,就比别人坚持久一点

⭐欢迎并且感谢大家指出我的问题

目录

1.File概述

2.File构造方法

(1).根据文件路径创建文件对象

(2).根据父路径名字符串和子路径名字符串创建对象

(3).根据父路径对应文件对象和子路径名字符串创建对象

3.File成员方法

(1).判断,获取

(2).创建,删除

1.createNewFile(创建文件)

2.mkdir(创建文件夹)

3.mkdirs(创建多级文件夹)

4.delete(删除文件)

(3).获取并遍历


1.File概述

在Java编程语言中,File类是用于表示文件和目录路径的类。通过File类,可以进行文件和目录的创建、删除、重命名等操作,以及获取它们的属性信息。File类提供了一系列方法,使得对文件系统中的文件和目录进行操作变得简单和方便。

本文将详细介绍File类的构造方法和主要成员方法,并给出示例代码帮助大家学习和巩固File类的各种用法。

2.File构造方法

ccc5293c93234bd7a353261cbf37eadd.png

(1).根据文件路径创建文件对象

public File(String pathname)

代码如下👇🏻

88eb5bc039094bcab2042be8b2bf1752.png

(2).根据父路径名字符串和子路径名字符串创建对象

public File(String parent,string child)

9c6e7e3df77144049b288bdc1f015c20.png

(3).根据父路径对应文件对象和子路径名字符串创建对象

public File(File parent,string child)

9f8e724d043849d4945b883e33c37861.png

3.File成员方法

(1).判断,获取

298d15a9612b49e78355cf838ead98dc.png

代码如下👇🏻

package File;
import java.io.File;
public class FileDemo2 {
  public static void main(String[] args) {
    File f1=new File("D:\\aaa\\b.txt");
    System.out.println(f1.isDirectory());
    System.out.println(f1.isFile());
    System.out.println(f1.exists());
	}
}

 运行结果👇🏻

ced5eedc4a384488b6f7c9205d9fca9d.png

(2).创建,删除

f745c0f7e7c7492a805b7f190900dc8e.png

1.createNewFile(创建文件)

注意1:如果当前路径是不存在的,则创建成功,方法返回True。
如果当前路径是存在的,则创建失败,方法返回false。

注意2:如果父级路径是不存在的,那么方法会有异常IOException。
注意3:createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件。

代码如下👇🏻

package File;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
  public static void main(String[] args) throws IOException {
    File f1=new File("D:\\aaa\\c.txt");
    boolean b = f1.createNewFile();
    System.out.println(b);
   }
}

运行结果👇🏻

ee0fdadd4eb8438fa2136edcb88c0e40.png

2.mkdir(创建文件夹)

注意1:windows中路径是唯一的,如果当前路径已经存在,则创建失败,返回flase

注意2:mkdir方法只能创建单级文件夹,无法创建多级文件夹

代码如下👇🏻

package File;
import java.io.File;
public class FileDemo5 {
  public static void main(String[] args) {
    File f1=new File("D:\\aaa\\ddd");
    boolean b = f1.mkdir();
    System.out.println(b);
	}
}

运行结果👇🏻

d8888be4f0254bee86585074f53337a3.png

3.mkdirs(创建多级文件夹)

注意:既可以创建单级文件夹,又可以创建多级文件夹

代码如下👇🏻

package File;
import java.io.File;
public class FileDemo5 {
  public static void main(String[] args) {
     File f2=new File("D:\\aaa\\bbb\\ccc\\ddd");
     boolean b = f2.mkdirs();
     System.out.println(b);
	}
}

运行结果👇🏻

62a92332c6544c72b3f1d6f825c1121a.png

4.delete(删除文件)

d68bb8d83bcc4bdaa3d88c105c9024fa.png

注意1:如果删除的是文件,则直接删除,不走回收站

注意2:如果删除的是空的文件夹,则直接删除,不走回收站

注意3:如果删除的是有内容的文件夹,则删除失败

package File;
import java.io.File;
public class FileDemo5 {
  public static void main(String[] args) {
     File f1=new File("D:\\aaa\\a.txt");
     boolean b = f1.delete();
     System.out.println(b);
	}
}

(3).获取并遍历

636d3694a3024ded876b97a74e8e54fb.png

listFiles:该方法用于遍历某个指定目录下的所有文件的名称。

练习1

(遍历aaa文件下的目录)

代码如下👇🏻

package File;
import java.io.File;
public class FileDemo6 {
  public static void main(String[] args) {
      File f1= new File("D:\\aaa");
      File [] files =f1.listFiles();
      for (File file:files) {
		   System.out.println(file);
		}
	}
}

运行结果👇🏻

f9a3dbc5bab641ec9c61e9b6ec65953d.png

2cebfdbf957d4029893d6a5c264415a4.png

练习2

(判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称)
分析
     A:封装e判断目录
     B:获取该目录下所有文件或者文件夹的File数组
     C:遍历该File数组,得到每一个File对象,然后判断
    D:是否是文件
         是:继续判断是否以.jpg结尾
             是:就输出该文件名称
                 否:不搭理它
             否:不搭理它

public class FileDemo {
	public static void main(String[] args) {
		// 封装e判断目录
		File file = new File("e:\\");
		// 获取该目录下所有文件或者文件夹的File数组
		File[] fileArray = file.listFiles();
		// 遍历该File数组,得到每一个File对象,然后判断
		for (File f : fileArray) {
			// 是否是文件
			if (f.isFile()) {
				// 继续判断是否以.jpg结尾
				if (f.getName().endsWith(".jpg")) {
					// 就输出该文件名称
					System.out.println(f.getName());
				}
			}
		}
	}
}	

🌺学习编程需要勤加练习,勇于实践,建议大家亲自动手操作,这样才能不断进步,掌握编程技巧,欢迎大家在评论区进行讨论。🌺

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275683.html

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

相关文章

Linux学习第46天:Linux音频驱动试验:总有那么一首歌,会让你泪流满面。

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 大叔来之一个小村庄,上大学以后来到了省城济南。之前高中练习英语听力买过一个随声听,晚上练习听力,怕影响同学休息还买了一个…

超级鹰验证码平台使用 + 案例使用

超级鹰主要是用来识别图片形式的验证码,进行登录验证的。 使用流程: 注册账号领取1000题分,新用户可以享受1000题分的优惠。 进去页面之后,点击开发文档: 这里面有很多语言的使用,这篇博客介绍python的…

Linux中top命令输出日志分析?

以下是对输出的各部分的解释: 09:54:34:系统当前时间。up 161 days, 2:08:系统已经运行了161天2小时8分钟。5 users:有5个用户登录系统。load average: 0.13, 0.08, 0.05:系统的1分钟、5分钟、15分钟的平均负载。负载…

Halcon算子中的slant倾斜hom_mat2d_slant

1.hom_mat2d_slant(HomMat2DIdentity, rad(50), y, 0, 0, HomMat2DSlant) --这个是选择20度和50度的。(0, 0)点对应的是左上角,50度就是让y轴产生有50度的倾角。 2.hom_mat2d_slant(HomMat2DIdentity, rad(60), x, 0, 0, HomMat2D…

【GraphQL】PostGraphile简介

Introduction to PostGraphile 什么是PostGraphile? 如果您熟悉Spring Data JPA,那么理解PostGraphile将非常容易。但没关系。让我们来看看。PostgreSQL数据库是一个非常流行的高性能应用数据库。ProstGraphile与PostgreSQL数据库和GraphQL配合使用。 …

Springbot启动报错-类文件具有错误的版本 61.0, 应为 52.0

错误再现: 启动Springboot项目时候报错 java: 无法访问org.springframework.boot.SpringApplication 错误的类文件: /D:/Maven/apache-maven-3.6.3/repository/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar!/org/springframework/boot/Sprin…

彰显营销硬实力!皓量科技连续四年入选《中国数字营销生态图》

11月28日,中国商务广告协会数字营销专业委员会、虎啸奖组委会、秒针营销科学院共同发布了《中国数字营销生态图(2023版)》(以下简称生态图)。凭借多年在广告营销领域的精耕细作,皓量科技从2020年开始连续4年…

计算机导论——第37章 磁盘驱动器

关键问题:如何存储和访问磁盘上的数据 现代磁盘驱动器如何存储数据?接口是什么?数据是如何安排和访问的?磁盘调度如何提高性能? 1. 接口 驱动器制造商唯一保证的是单个512字节的写入是原子的,即它将完整地…

计算机硬件(二)

1.内存和内存条的用途 假设运行内存16个g,能开多少软件 后台和前台能同时运行多少APP RAM越大越好 464 6128 8128 10256 例子: 8gx216g 两根内存条 16g运行内存 2.内存频率的用途 DDR5 DDR4 DDR3 后面的数字越大,越好,可以理解为传输的速度,内存搭配主…

【实战教程】PHP如何轻松对接腾讯云COS,实现文件上传下载?

腾讯云提供了一系列丰富的云服务,其中包括对象存储(Cloud Object Storage,简称COS),它是一种高可靠性、可扩展性强的云存储服务。本文将介绍如何使用PHP对接腾讯云COS存储服务,实现文件的上传和下载功能。 …

Pytest做性能测试?

Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件: pip install pytest pytest-benchmark …

这是怎么了?继阿里11月故障后,淘宝这个问题20 天了还未修复!

继11月12号,阿里云发生大面积故障故障以来,已经过去了近 20天,但是截止到发文时间,作者发现淘宝还有部分功能存在问题,没法正常使用。 难道真是降本增笑,开猿截流,导致没有相关负责人员了&…

什么是勒索软件

勒索软件 1. 定义2. 勒索软件的类型3. 勒索软件的工作方式4. 如何处置勒索软件 1. 定义 勒索软件又称勒索病毒,是一种特殊的恶意软件。勒索软件的特殊之处在于,它采用加密等技术手段限制受害者访问系统或系统内的数据(如文档、邮件、数据库、…

wps备份功能 救了我一命

感谢wps备份功能 救了我一命 文章目录 感谢wps备份功能 救了我一命**📝场景回现,往后再不干了**🧣灵光一现📇备注中心的设置流程🖊️最后总结 📝场景回现,往后再不干了 小🐮今天接到…

数字人可以为文化传播带来什么?

近日,由哈萨克斯坦驻华大使馆、中国外文局文化传播中心、中关村科幻产业创新中心联合发起的中哈青年友谊数字人怡漾和苏路(Сұлу)正式发布。其中,代表中方形象的数字人怡漾,不仅将成为中哈青年文化交流的标志与代言…

如何在 AdsPower 浏览器中设置代理

AdsPower是一款反检测指纹浏览器,来自中国开发团队的一款对电子商务营销人员非常有用的强大工具,同时具有出色的英语支持。AdsPower浏览器的主要优势是其价格便宜,与竞争对手相比,但其功能和整体工作表现甚至不逊于Indigo。 AdsP…

2023开发者必备iOS开发工具

​ 工欲善其事,必先利其器。进行开发工作时,利用并熟练使用恰当的工具可以让工作效率得到大幅度提高。下边会介绍一些在进行iOS开发工作时常用的一些工具,本文并不对其进行展开,对使用方法及工作原理感兴趣的同学可以自行进行更深…

【多线程】-- 08 线程状态观测、线程优先级、守护线程

多线程 5 线程状态 5.5 线程状态观测 Thread.State线程可以处于以下状态之一: NEW:尚未启动的线程处于此状态RUNNABLE:在Java虚拟机中执行的线程处于此状态BLOCKED:被阻塞等待监视器锁定的线程处于此状态WAITING:正…

快手获客技巧:轻松获取高转化率的潜在客户!

**一、引言** 随着互联网的发展,越来越多的企业开始关注短视频平台,尤其是快手。作为中国最大的短视频平台之一,快手拥有庞大的用户群体和丰富的视频内容。通过掌握快手获客技巧,企业不仅可以获取更多潜在客户,还能提高…

Django回顾【四】之模型层

目录 一、基本使用 1、ORM框架 2、创建表 二、常用和非常用字段 三、常用和非常用字段参数 四、settings配置 五、基本操作 5.1 增加表记录 5.2 删除表纪录 5.3 更新表纪录 5.4 查询表纪录 六、 多表操作-创建关系 七、基于对象的跨表查询 八、基于链表的跨表…