进阶JAVA篇-了解 File 文件的常用API

🔥博客主页: 小扳_-CSDN博客
❤感谢大家点赞👍收藏⭐评论✍

目录

        1.0 File 文件的说明

        2.0 如何创建 File 类的对象

        2.1 需要注意的事项

        3.0 File 类的常用 API

        3.1 如何创建文件或文件夹

        3.2 如何查询文件和文件夹的信息

        3.3 如何删除文件和文件夹

        3.4 如何重命名文件和文件夹       

        3.5 如何遍历文件和文件夹名称    

        3.6 如何遍历文件和文件夹对象    

        4.0 File 文件搜索


        1.0 File 文件的说明

        在 Java 中,File 类是用于操作文件和文件夹的类。它提供了一系列的方法,可以用于创建、删除、重命名、查询文件和目录的信息等操作。

        

        2.0 如何创建 File 类的对象

        一般都是通过文件路径创建 File 对象,注意的是该对象即可以是文件也可以是文件夹。

        常用的三种方式:(1)使用文件路径创建 File 对象、(2)使用目录路径和文件名创建 File 对象、(3)使用父目录的 File 对象和文件名创建 File 对象

代码如下:

public class NewFile {
    public static void main(String[] args) {
        //1. 创建文件对象
        File f1 = new File("D:\\software\\aaa\\bbb.txt");
        //这样就可以得到了该路径的文件对象了。

        //2. 创建文件夹对象
        File f2 = new File("D:\\software\\aaa");
        //像这样就可以得到了该路径的文件夹对象了。

        //3. 第二种创建文件对象的方式
        //   使用父目录的 File 对象和文件名创建 File 对象
        File f3 = new File(f2,"bbb.txt");

        //4. 第四种创建文件对象的方式
        //   使用目录路径和文件名创建 File 对象
        File f4 = new File("D:\\software\\aaa","bbb.txt");
    }
}

        这些方式都是大致是相同的,表达都是同一个意思。

        2.1 需要注意的事项

        第一个点:File 类对象既可以是文件也可以是文件夹

        第二个点:无论该路径上的文件或者文件夹是否存在,都不会报错,文件或者文件夹存不存在都是可以的创建 File 类对象的。

        第三个点:编写路径的时候,需要注意的是如果用到了反斜杠,为了防止字符转义,所以需要再加多一条反斜杠进行转义为单个反斜杠。如果用到了正斜杆,就可以单写一条就够了。还可以用 File 类中的方法来进行编写路径。

代码如下:

import java.io.File;

public class NewFile {
    public static void main(String[] args) {
        File f1 = new File("D:\\software\\aaa\\bbb.txt");
        File f2 = new File("D:/software/aaa/bbb.txt");
        File f3 = new File("D:"+File.separator+"software"+File.separator+"aaa"+File.separator+"bbb.txt");
        System.out.println(f3.getAbsoluteFile());
    }
}

运行结果如下:

        这三种效果都是相同的,都可以得到该类的对象。

        3.0 File 类的常用 API

        先来介绍创建、删除、重命名、查询文件和目录的信息的相关 API。

        3.1 如何创建文件或文件夹

        createNewFile():创建一个新的空文件。

代码如下:

import java.io.IOException;

public class NewFile {
    public static void main(String[] args) throws IOException {

        //先要定义 File 类对象
        File f1 = new File("D:\\software\\aaa\\ccc.txt");
        //创建文件
        f1.createNewFile();
    }
}

        如果文件不存在的话,就会创建一个空文件。需要注意的是,这里会有编译异常,需要抛异常或者捕获异常。

        mkdir():创建一个新的目录。

代码如下:

import java.io.File;

public class NewFile {

    public static void main(String[] args) {
        File f1 = new File("D:\\software\\aaa\\ddd");
        f1.mkdir();
    }
}

        如果文件不存在的话,就会创建一个空文件。需要注意的是,只能创建一级文件夹。

        mkdirs():创建一个多级目录。

代码如下:

import java.io.File;

public class NewFile {

    public static void main(String[] args) {
        File f1 = new File("D:\\software\\aaa\\ddd\\fff\\ggg\\hhh");
        f1.mkdir();
    }
}

        这些方法若创建成功都会返回 boolean 类型。

        3.2 如何查询文件和文件夹的信息

        这些查询信息的 API 会比较多,但是很容易上手,直接代码演示了。

代码如下:

import java.text.SimpleDateFormat;
import java.io.File;

public class NewFile {
    public static void main(String[] args) {
        File f1 = new File("D:\\software\\aaa\\bbb.txt");

        //1.0 判断当前文件对象,对应的文件路径是否存在,存在返回true,反之。
        System.out.println(f1.exists());
        //输出结果为:true

        //2.0 判断当前文件对象指代的是否是文件,是文件返回true,反之。
        System.out.println(f1.isFile());
        //输出结果为:true

        //3.0 判断当前文件对象指代的是否是文件夹,是文件返回true,反之。
        System.out.println(f1.isDirectory());
        //输出结果为:false

        //4.0 获取文件的名称(包含后缀)
        String name = f1.getName();
        System.out.println(name);
        //输出结果为:bbb.txt

        //5.0 获取文件的大小,返回字节个数,返回类型为 long 类型。
        long len = f1.length();
        System.out.println(len);
        //输出结果为:0

        //6.0 获取文件的最后修改的时间,返回类型为 long 类型。
        long lastTime = f1.lastModified();
        System.out.println(lastTime);
        //输出结果为:1698570082109
        //这里可以格式化
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = simpleDateFormat.format(lastTime);
        System.out.println(time);
        //输出结果为:2023-10-29 17:01:22

        //7.0 获取创建文件对象时,使用的路径。
        String path = f1.getPath();
        System.out.println(path);
        //输出结果为:D:\software\aaa\bbb.txt

        //8.0 获取创建文件对象时,使用的绝对路径。
        String absolutePath = f1.getAbsolutePath();
        System.out.println(absolutePath);
        //输出结果为:D:\software\aaa\bbb.txt

    }
}

运行结果如下:

        3.3 如何删除文件和文件夹

        delete():删除文件或文件夹。

代码如下:

import java.io.File;

public class NewFile {
    public static void main(String[] args) {
        File f1 = new File("D:\\software\\aaa\\bbb.txt");
        System.out.println(f1.delete());
    }
}

        删除成功会返回ture,反之。需要注意的是,只能删除空文件或者文件夹。

        3.4 如何重命名文件和文件夹       

        renameTo(File dest):重命名文件或文件夹。

代码如下:

import java.io.File;

public class NewFile {
    public static void main(String[] args) {
        File f1 = new File("D:\\software\\aaa\\ccc.txt");
        File f2 = new File("D:\\software\\aaa\\sss.txt");
        System.out.println(f1.renameTo(f2));
    }
}

        如果可以改名成功,会返回true,反之。

        3.5 如何遍历文件和文件夹名称    

        list():返回目录下的所有文件和目录的名称数组。

代码如下:

import java.io.File;
import java.util.Arrays;

public class NewFile {
    public static void main(String[] args) {
        File f = new File("D:\\software\\code\\2023_java\\2023_java_code");
        String[] strings = f.list();
        System.out.println(Arrays.toString(strings));
    }
}

        返回的是字符串类型的文件名,而不是文件或者文件夹对象。

         3.6 如何遍历文件和文件夹对象    

         listFiles():返回目录下的所有文件和目录的File对象数组。

代码如下:

import java.io.File;
import java.util.Arrays;

public class NewFile {
    public static void main(String[] args) {
        File file = new File("D:\\software\\code\\2023_java\\2023_java_code");
        File[] files =  file.listFiles();
        System.out.println(Arrays.toString(files));
    }
}

运行结果如下:

        得到的是文件或者是文件夹的对象。

         4.0 File 文件搜索

        接下来做个小项目,File 文件搜索,给出盘符还有目标文件,来通过遍历来找到该目标文件的路径,并且启动起来。

代码如下:

import java.io.File;

public class NewFile {
    public static void main(String[] args) throws Exception {
        fileSearch(new File("D:\\"),"WeChat.exe");
    }
    public static void fileSearch(File file,String name) throws Exception {
        if (file == null || !file.exists() || file.isFile()){
            return;
        }
            File[] files = file.listFiles();
        if (files != null) {
            for (File f : files) {
                if (f.isFile()) {
                    if (f.getName().contains(name)) {
                        System.out.println("找到了:" + f.getAbsoluteFile());
                        Runtime runtime = Runtime.getRuntime();
                        runtime.exec(f.getAbsolutePath());
                    }
                } else {
                    fileSearch(f, name);
                }
            }
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信定时发圈,快人一步不落索

现在的社交媒体运营已经成为了私域流量获取的重要手段,而微信作为最大的社交平台之一,更是吸引了众多使用者。但是,你是否曾经感叹过每天手动发朋友圈的繁琐?是否希望能够事先设置好定时发送的功能,让你的朋友圈自动更…

检查Python中的变量是否为字符串

我们将通过示例介绍两种不同的方法来检查 Python 中的变量是否为字符串。 检查Python中的变量是否为字符串 在 Python 中,每个变量都有一个数据类型。 数据类型表示变量内部存储的数据类型。 数据类型是编程语言最重要的特征,用于区分我们可以存储的不…

本科生学深度学习-Attention机制

很久没有写了,今天想学习下Bert ,发现其中一个很重要的机制是self-Attention,在查self-attention的时候又回归到Attention机制,记录下。 1、Attention 是什么 Attention(注意力)机制核心逻辑就是「从关注全部到关注重点」。 attention机制是模仿人类注意力而提出的一种…

Mybatis-Plus通用枚举功能 [MyBatis-Plus系列] - 第493篇

历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 S…

AS/400-对象管理-01

对象管理 对象对象构图 AS/400中的库命令Display Library List (DSPLIBL)Create Library (CRTLIB)Display library (DSPLIB)Edit Library List (EDTLIBL) Source physical file 物理文件创建物理文件的命令 : CRTSRCPF 物理文件查看所有物理文件的源文件创建源文件…

2023年中国冷风机分类、销量及市场规模分析[图]

冷风机通常是指一种设备,用于通过冷却空气来调节室内或工业环境的温度。这些设备通过循环空气并通过冷却元件(如冷却盘或冷凝器)来降低空气的温度,从而实现温度控制。冷风机在家庭、商业和工业领域都有广泛的应用,可以…

geoserver去除tif影像黑色的背景的方法

geoserver加载某些tif文件的时候,tif文件本身有黑色的背景,怎么去掉呢? 只要在geoserver中设置就行。 处理方法: 1.新建数据源时要选择ImageMosaic数据源 2,设置"Output Transparent Color" 设置"Output Transparent Color"为黑色(000000),在…

Postgresql在jdbc处理bit字段的解决方案

问题: bit如果长度为1,则会默认为布尔型(1-true 0-false); bit如果长度大于1,则会默认为bit类型,但是代码中以前常用的两种set方式,会报错 第一种方式: ps.setObject(i1,…

【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)

这俩软件都不大,比较便携。 FreePic2PDF: 我下载的来源:https://www.52pojie.cn/thread-1317140-1-1.html(包含下载链接https://www.lanzoui.com/it4x6j4hbvc)下载的结果:https://pan.baidu.com/s/1r8n5G42…

win 下安装 nvm 的使用与配置

nvm 全名 node.js version management,是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs。 注:如果已经安装了 nodejs 需先卸载后再安装 nvm 为了确保 nodejs 已彻底删除,可以看看安装目录中是否有 node 文件夹&#x…

解密人工智能:决策树 | 随机森林 | 朴素贝叶斯

文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、决策树2.1 优点2.2 缺点 三、随机森林四、Naive Bayes(朴素贝叶斯)五、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法,通过对…

js的小题

//闭包实例代码 function fn1() {let a 1;function fn2() {a;console.log(a);}console.log(a,a) } fn1(); 执行结果: 1 a 现在思考怎么调用里面的fn2函数呢? 答案是: //闭包实例代码 function fn1() {let a 1;function fn2() {a;console.log(a);}console.log(a,a)return f…

安卓核心板_天玑700、天玑720、天玑900_5G模块规格参数

5G安卓核心板是采用新一代蜂窝移动通信技术的重要设备。它支持万物互联、生活云端化和智能交互的特性。5G技术使得各类智能硬件始终处于联网状态,而物联网则成为5G发展的主要动力。物联网通过传感器、无线网络和射频识别等技术,实现了物体之间的互联。而…

正点原子嵌入式linux驱动开发——Linux RTC驱动

RTC也就是实时时钟,用于记录当前系统时间,对于Linux系统而言时间是非常重要的,就和使用Windows电脑或手机查看时间一样,在使用Linux设备的时候也需要查看时间。本章就来学习一下如何编写Linux下的RTC驱动程序。 Linux内核RTC驱动…

算法笔记【8】-合并排序算法

文章目录 一、前言二、合并排序算法基本原理三、实现步骤四、优缺点分析 一、前言 合并排序算法通过采用分治策略和递归思想,实现了高效、稳定的排序功能。本文将深入探讨合并排序算法的原理、实现步骤,并讨论其优缺点。 二、合并排序算法基本原理 合…

一文看懂完整的研究生生活规划

很多人在刚从本科步入研究生生活的时候,总是对于自己三年的研究生生活没有清晰的规划,总是在各种浪费时间,没有拿到想要的东西,也没有学到想学的东西,亦或是没有找到理想的工作,最后草草的毕业。这个时候我们就应该对于自己的研究生生活有个清晰的规划,帮助我们不留遗憾…

人大与加拿大女王大学金融管理硕士项目:开启国际视野,成就金融领袖

生活中,我们总会遇到各种各样的困难和挑战。有时候,我们会感到沮丧、迷茫甚至绝望。但是,正是这些困难和挑战,让我们变得更加坚强、勇敢和成熟。在这个职场竞争愈发激烈的时代,不断地充实自己是非常重要的。如果你从事…

IP代理被低估的作用,你知道吗?

IP说简单不简单,说复杂也不复杂,打个比方,IP就好比我们上网的一个门牌号,每家每户都会有一个门牌号,而且是唯一的地址。而代理IP(代理服务器)是一个位于中间的服务器,充当客户端和目…

centos部署tomcat

Java Downloads | Oracle 上面是下载网址 Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全域管理和Tomcat阀 简单来说:Tomcat…

【人口数据集总结】WorldPop、GWPv4等

1 全球人口数据WorldPop 数据详解可参见另一博客-【数据集8】全球人口数据WorldPop详解。 WorldPop是由南安普顿大学在2013年10月发起的全球人口数据评估,将AfriPop,AsiaPop和AmeriPop人口调查项目整合到一起。数据集已经被众多的组织和机构使用:联合国开发计划署,联合国…