java加强 -File

news2025/5/15 12:00:42

File类的对象可以代表文件/文件夹,并可以调用其提供的方法对象文件进行操作。

File对象既可以代表文件,也可以代表文件夹。

创建File对象,获取某个文件的信息

语法:

File 对象名 = new File("需要访问文件的绝对路径(如果在当前工程下可以用相对路径)")

判断是否是文件

可以用对象名.isFile()来判断当前路径下的东西是文件还是文件夹,是文件返回true,不是文件返回false

判断文件是否存在

可以用对象名.exists()来判断绝对路径所代表的文件在此位置是否存在,存在返回true,不存在返回false。

创建文件

如果绝对路径(相对路径)所代表的文件不存在,可以用对象名.creatNewFile来创造对应的文件

创建文件夹

语法:

如果绝对路径所代表的东西不存在,需要一个文件夹,可以用对象名.mkdir()来在对应位置创造对应文件夹。(只能创建一级文件夹,若是需要在文件夹里套文件夹即多级文件夹,需要用mkdirs)

可以用对象名.listFiles();获取当前路径下的所有一级文件对象,并使用文件夹数组接收,即File[ ]类型。

示例

package filedemo;

import java.io.File;

public class FileDemo1 {
    public static void main(String[] args) throws Exception {
        //目标:创建File创建对象代表文件(文件/目录),搞清楚其提供的对文件进行操作的方法。
        //1、创建File对象,去获取某个文件的信息
        File f1 = new File("E:\\蓝桥杯\\【模板】01背包.cpp");
        System.out.println(f1.length());
        System.out.println(f1.getName());
        System.out.println(f1.isFile());
        System.out.println(f1.isDirectory());
        //2、使用相对路径定位文件对象
        //只要带盘符的都称为绝对路径
        //相对路径:不带盘符,默认是到idea工程下直接寻找文件的,一般用来找工程下的项目文件。
        File f2 = new File("day03-file-io\\src\\filedemo\\CodeBlossom");
        System.out.println(f2.length());

        //3、创建对象代表不存在的文件路径
        File f3 = new File("E:\\text.txt");
        System.out.println(f3.exists());
        System.out.println(f3.createNewFile());
        //4、创建对象代表不存在的文件夹路径
        File f4 = new File("E:\\text"); //只能创建一级文件夹
        System.out.println(f4.mkdir());

        File f5 = new File("E:\\aaa\\bbbb\\cccc");
        //System.out.println(f5.mkdir());     //多级文件夹,失败
        //创建多级用mkdirs
        System.out.println(f5.mkdirs());
        //5、创建File对象代表存在的文件,然后删除它
        File f6 = new File("E:\\text");
        System.out.println(f6.delete());    //删除文件
        //6、创建File对象代表存在的文件夹,然后删除它
        File f7 = new File("E:\\aaa\\bbbb\\cccc");
        System.out.println(f7.delete());    //删除文件夹(只能删空文件夹),删除后的文件不进入回收站

        //7、获取某个目录下的全部一级文件名称
        File f9 = new File("E:\\垃圾");
        String[] names = f9.list();
        for (String name:names)
        {
            System.out.println(name);
        }


        File[] files = f9.listFiles();      //获取一级文件对象,存到数组里
        for (File file:files)
        {
            System.out.println(file.getAbsoluteFile());     //获取文件绝对路径
        }
    }
}

创建File对象的注意事项

package filedemo;

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

public class FileDemo2 {
    public static void main(String[] args) {
        //目标:掌握File遍历一级文件对象的操作
        //主调是文件或者路径不存在时,返回null
         File dir = new File("E:\\蓝桥杯\\【模板】01背包.cpp");

         //主调是空文件夹,返回长度为0的数组
        File dir2 = new File("E:\\aaa\\bbbb");
        //主调是一个有内容的文件夹,把里面所有一级文件和文件夹的路径放在File数组返回
        //主调是一个文件夹且文件夹有隐藏文件时,将里面的所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
        //主调是一个文件夹,但没有权限访问该文件夹时,返回null


        File [] files = dir2.listFiles();
        //System.out.println(files);
        System.out.println(Arrays.toString(files));
    }
}

项目实战:利用listFiles()方法来寻找目录下的某一个文件

package filedemo;

import java.io.File;

public class FileSearchDemoText {
    public static void main(String[] args) {
        //目标:找出D:盘下steam.exe的位置
        try {
            File dir = new File("D:\\");
            searchFile(dir,"steam.exe");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 搜索文件
     * @param dir 搜索的目录
     * @param fileName 搜索的文件名称
     */
    public static void searchFile(File dir,String fileName) throws Exception{
        //1、判断极端情况
        if (dir==null||!dir.exists()||dir.isFile())
        {
            return;//不搜索
        }

        //2、获取目录下的所有一级文件或者文件夹对象
        File[] files = dir.listFiles();
        //3、判断当前文件下是否存在一级文件对象,存在就遍历
        if(files!=null && files.length>0)
        {
            //4、遍历一级文件对象
            for (File file :files)
            {
                //5、判断此一级文件对象是不是文件
                if (file.isFile()){
                    //6、判断文件名称是否和目标文件一致
                    if(file.getName().equals(fileName)) {
                        System.out.println("找到目标文件:"+file.getAbsolutePath());
                        Runtime r = Runtime.getRuntime();
                        r.exec(file.getAbsolutePath());
                    }
                }else {
                        //7、如果当前一级文件对象是文件夹,则继续递归调用
                        searchFile(file,fileName);
                    }
                }
            }
        }
    }

当找到对应exe文件时,用getRuntime()方法获取一个虚拟机对象(java内的虚拟机可以用于启动exe文件)然后用exec方法打开对应exe文件。

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

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

相关文章

Ota++框架学习

一:框架结构 这是一幅展现 Web 应用程序架构的示意图,以下是对图中各部分的详细解释: 外部交互部分 Request(请求):位于架构图的左上角,用黄色虚线框表示 。代表来自客户端(如浏览器…

Chrome安装最新vue-devtool插件

本vue-devtool版本是官方的 v7.6.8版本,兼容性好、功能齐全且稳定。 操作步骤: 方法一: 打开谷歌浏览器 --> 右上角三个点 --> 扩展程序 --> 管理扩展程序 --> 加载已解压的扩展程序, 然后选择解压后的文件夹即可。…

bfs-最小步数问题

最小步长模型 特征: 主要是解决权值为1且状态为字符串类型的最短路问题,实质上是有向图的最短路问题,可以简化为bfs求最短路问题。 代表题目: acwing 845 八数码问题: 八数码题中由于每次交换的状态是由x进行上下左右…

java----------->代理模式

目录 什么是代理模式? 为什么会有代理模式? 怎么写代理模式? 实现代理模式总共需要三步: 什么是代理模式? 代理模式:给目标对象提供一个代理对象,并且由代理对象控制目标对象的引用 代理就是…

Untiy基础学习(十四)核心系统—物理系统之碰撞检测代码篇 刚体,碰撞体,材质

目录 一、碰撞器(Collider)与触发器(Trigger) 二、碰撞检测条件 三、碰撞事件与触发器事件,可以理解为特殊的生命周期函数。 四、讲讲如何选择 ​编辑 五、总结 一、碰撞/触发事件函数对照表 二、Collider 与 …

SAP学习笔记 - 开发08 - Eclipse连接到 BTP Cockpit实例

有关BTP,之前学了一点儿,今天继续学习。 SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)_sap btp开发-CSDN博客 如何在Eclipse中连接BTP Cockpit开发环境实例。 1&#xf…

Git的安装和配置(idea中配置Git)

一、Git的下载和安装 前提条件:IntelliJ IDEA 版本是2023.3 ,那么配置 Git 时推荐使用 Git 2.40.x 或更高版本 下载地址:CNPM Binaries Mirror 操作:打开链接 → 滚动到页面底部 → 选择2.40.x或更高版本的 .exe 文件&#xf…

【2025版】Spring Boot面试题

文章目录 1. Spring, Spring MVC, SpringBoot是什么关系?2. 谈一谈对Spring IoC的理解3. Component 和 Bean 的区别?4. Autowired 和 Resource 的区别?5. 注入Bean的方法有哪些?6. 为什么Spring 官方推荐构造函数注入?…

火山引擎实时音视频 高代码跑通日志

实时音视频 SDK 概览--实时音视频-火山引擎 什么是实时音视频 火山引擎实时音视频(Volcengine Real Time Communication,veRTC)提供全球范围内高可靠、高并发、低延时的实时音视频通信能力,实现多种类型的实时交流和互动。 通…

jenkins 启动报错

java.lang.UnsatisfiedLinkError: /opt/application/jdk-17.0.11/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory。 解决方案: yum install freetype-devel 安装完成之后重启jenkins。

【合新通信】无人机天线拉远RFOF(射频光纤传输)解决方案

无人机天线拉远RFOF方案通过光纤替代传统射频电缆,实现无人机与地面控制站之间的高保真、低损耗信号传输,尤其适用于高频段(如毫米波)、远距离或复杂电磁环境下的无人机作业场景。 核心应用场景 军事侦察与电子战 隐蔽部署&…

程序设计语言----软考中级软件设计师(自用学习笔记)

目录 1、解释器和编译器 2、程序的三种控制结构 3、程序中的数据必须具有类型 4、编译、解释程序翻译阶段 5、符号表 6、编译过程 7、上下文无关文法 8、前、中、后缀表达式 9、前、后缀表达式计算 10、语法树中、后序遍历 11、脚本语言和动态语言 12、语法分析方法…

通过SMTP协议实现Linux邮件发送配置指南

一、环境准备与基础配置 1. SMTP服务开通(以qq邮箱为例) 登录qq邮箱网页端,进入「设置」-「POP3/SMTP/IMAP」 开启「SMTP服务」并获取16位授权码(替代邮箱密码使用) 记录关键参数: SMTP服务器地址&#…

若依框架页面

1.页面地址 若依管理系统 2.账号和密码 管理员 账号admin 密码admin123 运维 账号yuwei 密码123456 自己搭建的地址方便大家学习,不要攻击哦,谢谢啊

44、私有程序集与共享程序集有什么区别?

私有程序集(Private Assembly)与共享程序集(Shared Assembly)是.NET框架中程序集部署的两种不同方式,它们在部署位置、版本控制、访问权限等方面存在显著差异,以下是对二者的详细比较: 1. 部署…

【Java面试题】——this 和 super 的区别

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:【Java】内容概括 【前言】 在Java的世界里,this和 super是两个非常重要且容易混淆的关键字。无论是在日常…

CentOS 7 内核升级指南:解决兼容性问题并提升性能

点击上方“程序猿技术大咖”,关注并选择“设为星标” 回复“加群”获取入群讨论资格! CentOS 7 默认搭载的 3.10.x 版本内核虽然稳定,但随着硬件和软件技术的快速发展,可能面临以下问题: 硬件兼容性不足:新…

解决 PicGo 上传 GitHub图床及Marp中Github图片编译常见难题指南

[目录] 0.行文概述 1.PicGo图片上传失败 2.*关于在Vscode中Marp图片的编译问题* 3.总结与启示行文概述 写作本文的动机是本人看到了Awesome Marp,发现使用 Markdown \texttt{Markdown} Markdown做PPT若加持一些 CSS , JavaScript \texttt{CSS},\texttt{JavaScript} …

软考 系统架构设计师系列知识点之杂项集萃(59)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(58) 第96题 假设关系模式R(U, F),属性集U{A, B, C},函数依赖集F{A->B, B->C}。若将其分解为p{R1(U1, F1), R2(U2, F2),其中U1{A, B}, U2{A, …

python使用matplotlib画图

【README】 plot画图有两种方法:包括 plt.plot(), ax.plot()-画多个子图 ,其中ax表示某个坐标轴; 【1】画单个图 import matplotlib # 避免兼容性问题:明确指定 matplotlib 使用兼容的后端,TkAgg 或 Agg matplotlib.use(TkAgg) …