File-一个IO流中至关重要的类

File类

  • 概述:文件和目录路径名的抽象表示,File 对象就代表一个路径
    • 对与File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来要通过具体的操作把这个路径的内容转换为具体存在的。

常用方法

  • 构造方法

    方法作用
    File(String pathname)通过给定路径名-字符串转换为抽象路径名来创建新的File实例
    File(String parent , String child)从父路径名字符串和子路径名字符串创建新的File实例
    File(File parent , String child)从父抽象路径名和子路径名字符串创建新的File实例
    public class Test{public static void main(String[] args){// 1、通过给定路径名-字符串转换为抽象路径名来创建新的File实例File f1 = new File("D:\\a.txt");File f2 = new File("D:\\music");// 2、从父路径名字符串和子路径名字符串创建新的File实例File f3 = new File("D:\\a","b.txt");// 3、从父抽象路径名和子路径名字符串创建新的File实例File f4 = new File(f2 , "c.mp4");}
    }
    
  • 创建方法

    方法作用
    public boolean createNewFile()当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件(文件存在,返回true。不存在返回 false)
    public boolean mkdir()创建由此抽象路径名命名的目录(文件夹)
    public boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录(创建多级目录)

    注意:

    ①:创建文件的时候,要确保上级目录存在,才可以创建成功

    public class Test{public static void main(String[] args) throws IOException {// 1、创建一个文件对象,其实就是创建 一个路径的 对象File f1 = new File("D:\\a.txt");   				// 文件对象File f2 = new File("D:\\b");					// 单级文件夹对象File f3 = new File("D:\\c\\d");					// 多级文件夹对象// 2、创建文件(就是在磁盘中创建这个路径的文件或者文件夹)boolean a = f1.createNewFile();boolean b = f2.mkdir();boolean c = f3.mkdirs();System.out.println(a +" " + b +" " +  c);}
    }
    

  • 删除方法

    方法作用
    public boolean delete()删除由此抽象路径名表示的文件或目录

    注意:删除文件的时候,要确保文件夹里没有文件,才可以删除文件夹成功

    public class Test2 {public static void main(String[] args) {// 1、创建文件对象File f1 = new File("D:\\a.txt");   				// 文件对象File f2 = new File("D:\\c");					    // 单级文件夹对象// 2、删除文件(从磁盘中删除)boolean a = f1.delete();boolean b = f2.delete();System.out.println(a + " " + b);}
    }
    

    运行结果:true false ,并且 D盘下 的 a.txt 已经删除(直接从电脑删除,不放入回收站),但是第二个是 false 是因为,我们代码上方的注意事项,c 文件夹下还有 d 文件夹,所以删除失败!

  • 判断和获取方法

    方法作用
    public boolean isDirectory()判断此抽象路径名表示的File是否为目录
    public boolean isFile()判断此抽象路径名表示的File是否为文件
    public boolean exists()判断此抽象路径名表示的File是否存在
    public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
    public String getPath()将此抽象路径名转换为路径名字符串
    public String getName()返回此抽象路径名表示的文件或目录的名称
    public String[] list()返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
    public File[] listFiles()返回此抽象路径名表示的目录中的文件和目录的File对象数组
    public class Test {public static void main(String[] args) {// 1、创建一个文件对象,其实就是创建 一个路径的 对象File f1 = new File("D:\\a.txt");   				// 文件对象File f2 = new File("D:\\b");					    // 单级文件夹对象File f3 = new File("D:\\c\\d");                    // 多级文件夹对象File f4 = new File("D:\\c");// 2、判断此抽象路径名表示的File是否为文件和目录(文件夹)boolean a = f1.isFile();boolean b = f2.isDirectory();// 3、判断此抽象路径名表示的File是否存在boolean c = f1.exists();// 4、返回此抽象路径名的绝对路径名字符串String f3Path = f3.getAbsolutePath();// 5、将此抽象路径名转换为路径名字符串String path = f3.getPath();// 6、返回此抽象路径名表示的文件或目录的名称String name = f1.getName();System.out.println(a + " " + b + " " + c);System.out.println(f3Path);System.out.println(path);System.out.println(name);// 7、返回此抽象路径名表示的目录中的文件和目录的名称字符串数组String[] list = f4.list();for (String s : list) {System.out.println(s);}// 8、返回此抽象路径名表示的目录中的文件和目录的File对象数组File[] files = f4.listFiles();for (File file : files) {System.out.println(file);}}
    }
    

    运行结果

    false true false
    D:\c\d
    D:\c\d
    a.txt
    d
    D:\c\d


绝对路径和相对路径

  • 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件
  • 相对路径:必须使用取自其他路径名的信息进行解释(必须要有个参考物)

案例

  • 需求:在D盘下创建一个四级目录,以 a b c d 字母顺序创建,并且在 d 目录下 创建文件 e.mp4 和 f.txt(创建文件时,需要先去判断此文件是否存在)。最后遍历输出 a 文件夹下所有 文件的名字。并且遍历时,删除后缀为 .txt 的文件?

  • 思路分析:

    • 首先需要创建四个 文件对象
    • 创建 两个文件
    • 其次遍历 a 文件夹,并输出所有文件的名字
    • 最后,在遍历的时候,判断后缀是否为 .txt ,是的话,执行删除
    public class Test {// 创建文件对象方法public static void createFile(File f){// 首先判断文件是否存在if(!f.exists()){// 不存在,创建文件try {f.createNewFile();} catch (IOException e) {e.printStackTrace();}}}// 遍历文件,并删除后缀是 .txt 的文件public static void showAndDel(File f){// 判断是文件还是文件夹if(f.isDirectory()){File[] files = f.listFiles();               // 获取当前文件对象下的所有文件对象for (File file : files) {                   // 遍历输出名字,并继续递归向下System.out.println(file.getName());showAndDel(file);}}else{if(f.getName().endsWith(".txt")){           // 判断后缀是否是 .txt 是,执行删除f.delete();}}}public static void main(String[] args) {// 1、创建 4 个对象File f1 = new File("D:\\a\\b\\c\\d");File f2 = new File("D:\\a");File f3 = new File(f1 , "e.mp4");File f4 = new File(f1 , "f.txt");// 2、磁盘创建 文件和文件夹f1.mkdirs();createFile(f3);createFile(f4);// 3、遍历删除showAndDel(f2);}
    }
    

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

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

相关文章

k8s的yaml文件中的kind类型都有哪些?(详述版Part1/2)

目录 综述 分块详述 1、Pod 2、Deployment 3、Service 4、DaemonSet 5、ReplicaSet 6、ServiceAccount 7、PodDisruptionBudget 8、PersistentVolumeClaim 9、PersistentVolume 10、Job 11、CronJob 12、StatefulSet 综述 通过yaml文件中的kind可以大致了解kube…

DevicData-D-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?

尊敬的读者: 在网络犯罪的阴影下,勒索病毒成为数字时代的重要威胁之一。DevicData-D-XXXXXXXX 勒索病毒作为其中的一种变体,以其高度隐蔽性和破坏性而备受关注。本文将深入介绍 DevicData-D-XXXXXXXX 勒索病毒的特征、数据恢复方法以及预防策…

xxljob分布式调度平台

分布式调度平台 XXL-JOB 极简入门 https://segmentfault.com/a/1190000041674725xxl-job-core 模块:XXL-JOB 核心。后续我们在编写执行器时,会引入该模块。 xxl-job-admin 模块:调度中心。 xxl-job-executor-samples 模块:提供了…

Python print()函数高级用法和 len()函数详解:获取字符串长度或字节数

Python print()函数高级用法 我们使用 print() 函数时,都只输出了一个变量,但实际上 print() 函数完全可以同时输出多个变量,而且它具有更多丰富的功能。 print() 函数的详细语法格式如下: print (value,...,sep,end\n,filesys.s…

Python高级用法:上下文

上下文 上下文的实现一般可以通过装饰器或者上下文管理器实现,装饰器确保函数可以运行在正确的上下文中,或者在函数前后运行一些代码。 上下文装饰器 当一个数据项需要在多个线程之间共享时,就要用一个锁来保护它避免多次访问。这个锁可以…

如何使用 Jmeter 进行压力测试?

准备测试计划:在 JMeter 中创建一个新的测试计划(Test Plan)。添加线程组:在测试计划中添加一个线程组(Thread Group),用于模拟并发用户。右键点击测试计划 -> 添加 -> Threads (Users) -…

Turn.js 实现翻书效果

接到了任务,要把孩子画的画放到网页上去,翻页效果还要逼真一点。搜索到了turn.js这个前端翻页组件,效果不错。先上图看效果。 网页实际效果:星月夜诗集 turn.js的官网地址:Turn.js: The page flip effect in HTML5 …

机械臂 关节电机选型计算

电机的关键参数 电机的三个关键参数:额定功率,额定扭矩,额定转速。这个大家都比较清楚,对应关系公式,可以直接搜索出来。这里还需要特别声明一点,就是电机的转速-扭矩曲线。这里的前提是对应不同的额定电压…

XDOJ173.购票系统

标题 购票系统 类别 综合 时间限制 1S 内存限制 256Kb 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号&a…

华为OD机试真题-机器人仓库搬砖-2023年OD统一考试(C卷)

题目描述: 机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损…

高校电力能耗监测精细化管理系统,提升能源利用效率的利器

电力是高校不可离开的重要能源,为学校相关管理人员提供在线用能查询统计等服务。通过对学校照明用电、空调用电等数据的采集、监控、分析,为学校电能管理制定合理的能源政策提供参考。同时,也可以培养学生的节能意识,学校后勤电力…

[MySQL]视图索引以及连接查询案列

目录 1.视图 1.1视图是什么 1.2视图的作用 1.3操作 1.3.1创建视图 1.3.2视图的修改 1.3.3删除视图 1.3.4查看视图 2.索引 2.1什么是索引 2.2为什么要使用索引 2.3索引的优缺点 2.3.1优点 2.3.2缺点 2.4索引的分类 3.连接查询案列 4.思维导图 1.视图 1.1视图是什么 视图…

【AI视野·今日Robot 机器人论文速览 第六十九期】Wed, 3 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 3 Jan 2024 Totally 5 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers NID-SLAM: Neural Implicit Representation-based RGB-D SLAM in dynamic environments Authors Ziheng Xu, Jianwei Niu, Qingf…

计算机原理 (2) CPU的诞生 输入 输出 PC指针

文章目录 计算机的前世今生计算机的三个根本性基础1. 计算机是执行输入、运算、输出的机器;2.程序是指令和数据的集合;3.计算机的处理方式有时与人们的思维习惯不同 二、结论三、参考资料交个朋友 计算机的前世今生 上一篇文章最终结束的时候谈到希望给…

Filter Options in Select Field

Filter Options in Select Field 假设有两个下拉字段State和City。邦有两个值卡纳塔克邦和马哈拉施特拉邦,城市有四个值,班加罗尔,迈索尔,孟买和浦那。如果希望根据State中选择的值过滤City中的选项,可以编写如下所示的…

SpringBoot pom.xml文件标签含义

Pom文件 基本构成 通过最简单的一个SpringBoot项目的 Pom文件来了解一下Pom文件的基本构成 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XML…

【强力推荐】GitCode AI开源搜索,面向开发者的专业AI搜索

一、GitCode AI开源搜索是什么&#xff1f; GitCode AI开源搜索 是面开发者的 AI 开源搜索工具&#xff0c;目的是为了帮助开发者快速寻找开源项目代码、解决开发问题和快速寻找答案&#xff0c;帮助开发者提升效率的同时利用代码仓托管能力建立自己个人知识库。 二、GitCode…

秋招复习之堆

目录 前言 堆 堆的常用操作 堆的实现&#xff08;大根堆&#xff09; 1. 堆的存储与表示 2. 访问堆顶元素 3. 元素入堆 4. 堆顶元素出堆 Top-k 问题 方法一&#xff1a;遍历选择 方法二&#xff1a;排序 方法三&#xff1a;堆 总结 前言 秋招复习之堆。 堆 「堆 heap…

Apache Camel笔记

Apache Camel笔记 1. Apache Camel概念 Apache Camel是一个轻量级的应用集成开发框架&#xff0c;专注于简化集成应用的开发。它基于Enterprise Integration Patterns&#xff08;企业集成模式&#xff0c;简称EIP&#xff09;的设计理念&#xff0c;提供了灵活的路由和中介机制…

[java]JAVA中文版API手册 -jdk_api_1.8

有mac和win版本 链接&#xff1a;https://pan.baidu.com/s/14WGXJYBICeSxgg6OxBVGRQ 提取码&#xff1a;c03p