File类的正确学习方式(一)-文件查找

我用 AI Agent 全自动跑 COMSOL 仿真:从建模到后处理,踩了 10+ 个深坑 本文探讨了利用AI通过COMSOL Java API实现AI芯片液冷冷板全流程自动化仿真的实践。针对700W高功耗AI芯片的散热需求,构建了包含4颗Chiplet和微通道冷板的三维液冷模型。通过严格设计的Prompt工程,AI Agent成功完成了从几何建模到结果验证的全过程,最终实现了芯片最高温度54°C的良好散热效果。文章重点分享了10个关键问题的解决经验,包括流体连通性验证、网格顺序控制、离散阶数选择、收敛判据优化等,并建立了包含流场/热场/网格独立性的三重验证体系。实践表明,AI可高效处理重复性工作 阅读详情

关键字:File类的创建、删除;获取文件名、路径、大小;目录遍历、文件查找

一、File类入门

1.概念

2.提供的静态方法(了解)

  • C:\develop\a.txt windows 反斜杠
  • User/develop/a.txt linux 正斜杆
    类名.静态成员
static String pathSeparator与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar与系统有关的路径分隔符。
static String separator与系统有关的默认名称分隔符,为了方便,它被表示为一个字符
static char separatorChar与系统有关的默认名称分隔符。
package file;
import java.io.File;
/**
 * File的静态成员变量
 * 功能:关于文件路径和文件名称的分隔符使用
 */
public class Demo01File {
    /**
     * 注意:操作路径不能写死了
     * C:\develop\a.txt     windows  反斜杠
     * User/develop/a.txt   linux 正斜杆
     * 正确写法:"C:" + File.separator + "develop" +File.separator+ "a.txt" ;
     */
    public static void main(String[] args) {
        String pathSeparator = File.pathSeparator;    //路径分隔符  win是 分号;
        System.out.println(pathSeparator);          // linux 为 冒号:

        String separator = File.separator;          //文件名称分隔符   win:反斜杠 \
        System.out.println(separator);              //linux :正斜杠 /
    }
}

3.构造方法

4 中创建 File 对象的方法;

  • File(String pathname);
  • File(String parent,String child);
  • File(File parent , String child);
  • File(URI uri);
public class Demo02FileStructure {

    public static void main(String[] args) {
        String pathname = "/Users/IdeaProjects/JavaDemo/a.txt";   //传递文件夹、或者文件全称
        File file = new File(pathname);
        System.out.println(file);

        File a = new File("a.txt");   //  传递文件名!!!不要带斜杆
        System.out.println(a);
    }
}

4.常用的三大方法(重点)

一、获取功能

  •   获取绝对路径:file.getAbsolutePath()
    
  •   获取路径:file.getPath() 构造函数中的路径值
    
  •   获取文件名:file.getName()
    
  •   获取文件大小:file.length() 单位:字节
    

二、判断功能:

  •   file 文件/夹是否存在:file.exists()
    
  •   构造函数路径是尾部是文件吗:file.isFile()
    
  •   file.isDirectory()
    

三、创建、删除功能

  •   创建新文件:file.createNewFile()
    
  •   创建单级目录:file.mkdir()
    
  •   创建多级目录:file.mkdirs()  一般使用这个,兼容单级。
    
  •   删除文件/空文件夹:file.delete()   直接从磁盘删除,不走回收站
    
package file;
import java.io.File;
import java.io.IOException;

/*
* File 三大类常用的方法:File file = new File("文件名/文件夹"
* time:2020-05-07
* */

public class Demo03FileMethod {

    public static void main(String[] args) throws IOException {
        //获取文件:路径、名称、大小的4种方法
        //show1();

        //判断的方法:File是否存在、是否为文件或者目录
        //show2();

        //创建、删除:文件、目录功能
         show3();
    }

    /*
     * 种类3:创建和删除功能
     * */
    private static void show3() throws IOException {
        //此file只是文件或者路径的 抽象表现形式,此时是不存在的。
        File file = new File("/Users/IdeaProjects/JavaDemo/b.txt");

        //1.  createNewFile():
        // 创建文件
        boolean newFile = file.createNewFile();  //抛出异常
        System.out.println("绝对路径文件创建:" + newFile);
        boolean c = new File("c.txt").createNewFile();    // 注意此时,只需要传递文件名即可。不用加斜杠
        System.out.println("相对路径文件创建:"+ c);

        //2.创建文件夹:
        // mkdir() 创建单级文件夹
        // mkdird() 创建多级文件夹
        File f1 = new File("/Users/IdeaProjects/JavaDemo/新建文件夹");
        System.out.println(f1.mkdir());
        boolean mkdirs = new File("/Users/IdeaProjects/JavaDemo/新建文件夹/aaa/bbb").mkdirs();
        System.out.println(mkdirs);

        //3. file.delete()
        // 删除空文件夹,或者文件
        File f2 = new File("/Users/IdeaProjects/JavaDemo/新建文件夹/ccc");
        System.out.println("删除新建文件夹下的CCC文件夹:"+f2.delete());
        //删除已存在的文件
        File d = new File("c.txt");
        System.out.println("删除d.txt:"+d.delete());
	}

    /*
     * 种类2:判断功能的方法
     * */
    private static void show2() {
        File file = new File("/Users/IdeaProjects/JavaDemo/a.txt");

        //1.  exists()
        boolean b = file.exists();
        System.out.println("文件或者目录是否真实存在:" + b);

        //2. isFile()
        boolean isfile = file.isFile();   //判断此 File是否为文件,即 new File()中传递的路径 结尾是否是文件名
        System.out.println(isfile);

        //3.isDirectory
        System.out.println(file.isDirectory());   //判断是此File是否为文件夹,即判断构造方法中给定的路径,结尾处是否是文件夹
    }

    /*
    * 种类1:获取方法
    * */
    private static void show1() {
        //创建文件或目录抽象对象,重写了toString方法
        File file = new File("/Users/IdeaProjects/JavaDemo/a.txt");
        System.out.println(file);  //toString()方法,调用的就是getPath()方法

        //1.getAbsolutePath() 获取绝对路径:
        System.out.println(file.getAbsolutePath());//   /Users/IdeaProjects/JavaDemo/a.txt

        //2.getPath() :获取路径
        System.out.println(file.getPath());  //  和new File()时传递的路径有关系

        //3.getName() :获取的是构造方法传递路径的结尾部分,即最后一级文件夹或者文件名
        String name = file.getName();
        System.out.println(name);    //JavaDemo或者a.txt

        //4. length() :获取文件大小(单位:字节)
        long length = file.length();  //588 byte
        System.out.println(length);   //无法获取 文件夹(文件夹没有大小之分) 以及 不存在的的文件的大小

    }
}

二、遍历目录、递归、文件查找

1.遍历目录

File类提供的遍历下一级目录Directory的方法:

  • (1)public String[]list(); 返回String数组,表示File目录中的下一级的所有文件和目录名
  • (2) public File[] listFiles(); 返回File数组,表示File下级目录中的所有文件和文件夹的 new File() 抽象对象表示形式
public class Demo04FileDirectoryEach {
    public static void main(String[] args) throws IOException {

        //创建文件和文件夹
        new File("/Users/IdeaProjects/JavaDemo/test/ccc/ddd").mkdirs();
        new File("/Users/IdeaProjects/JavaDemo/test/ccc/eee").mkdirs();
        new File("/Users/IdeaProjects/JavaDemo/test/ccc/a.txt").createNewFile();

        //遍历目录1:  file.list()
        File file = new File("/Users/IdeaProjects/JavaDemo/test/ccc");
        String[] list = file.list();
        for (String s : list) {
            System.out.println(s);
                //打印目录下子内容名称
        }

        //遍历目录2:  file.listFiles()
        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1);
                    /* 打印该目录下的子内容,以File的重写的toString()
        }
    }
}

想要遍历某文件夹下的各级子内容,得使用递归思想+上述方法!

3.递归思想

递归思想:递归计算 n+…+1 之和

  • 1.中止条件
  • 2.递归目的:获取下一个数字
public class Demo01Recurison {
    public static void main(String[] args) {

        int sum = sum(100);
        System.out.println(sum);
    }

    private static int sum(int n) {
        //System.out.println(n);
        if (n == 1)
            return 1;  //1.中止条件

        //2.递归的目的:获取下一个被加的  数字(n-1)
        return  n + sum(n-1);
    }
}

3.利用递归对文件遍历和搜索🔍

  • 功能:搜索本项目下的所有 .java文件:递归和字符串尾缀匹配的方法来找 .java 文件
public class Demo02DirectoryRecurison {
    //递归打印 多级目录
    //同时也可以递归搜索 特定文件
    public static void main(String[] args) {
        File dir = new File("/Users/IdeaProjects/JavaDemo");
        getAllFiles(dir);
    }

    private static void getAllFiles(File dir) {
       // System.out.println(dir);       //打印所有文件夹
        File[] files = dir.listFiles();   //用到listFiles()方法,查看下一级内容
        for (File f : files) {
            if (f.isDirectory()){       //判断是否为文件夹,是则递归查看
                getAllFiles(f);
            }else {
                //System.out.println(f);    //打印所有文件名
             /*
                //法一:搜索 .java结尾的文件
                String name = f.getName();
                int i = name.lastIndexOf(".");
                String substring = name.substring(i + 1);
                if (substring.equals("java")){
                    System.out.println(f);
                }*/

                //法二:搜索  .java文件
                // 还有  name.endsWith(".java")  方法来判断尾缀。
                if (f.getName().toLowerCase().endsWith(".java")){
                    System.out.println(f);  //兼容大小写,
                }
            }
        }

    }
}

4.优化文件搜索🔍

  • 优化1:上面的 dir.listFiles() 将文件夹下的所有内容均存储到了 File[] 数组中,造成了栈空间的浪费。 这里采用File类中listFiles()的两种重载方法,来进行文件过滤。满足过滤器的存入File数组
    listFiles(FileFilter filter)
    listFiles(FilenameFilter filter)
public class Demo03FileSearch {
    //1.上面用递归和字符串尾缀匹配的方法来找 .java 文件
    //2. 这里采用File类中listFiles()的两种重载方法,来进行文件过滤。
    //3.listFiles(FileFilter filter)    listFiles(FilenameFilter filter)
    //4.FileFilter是一个接口,只有accept一个抽象方法,因为可使用lambda表达式优化匿名内部类

    public static void main(String[] args) {
        File dir = new File("/Users/IdeaProjects/JavaDemo");
        getAllFiles(dir);
    }

    private static void getAllFiles(File dir) {
        // System.out.println(dir);       //打印所有文件夹
        //用到listFiles()方法,查看下一级内容
        //这里使用带有过滤器的listFiles(filter)方法,符合过滤器规则的,返回true,则保存到File[]数组中

        File[] files = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if (pathname.getName().toLowerCase().endsWith(".java") || pathname.isDirectory()){
                    return true;
                }
                return false;
            }
        });
        
        for (File f : files) {
            if (f.isDirectory()){       //判断是否为文件夹,是则递归查看
                getAllFiles(f);
            }else {
                //搜索  .java文件
                if (f.getName().toLowerCase().endsWith(".java")){
                    System.out.println(f);  //兼容大小写,
                }
            }
        }

    }
}

优化2:使用lambda表达式优化匿名内部类(接口只有一个抽象函数的情况下) :

()->{} 只保留参数和方法体
        File[] files = dir.listFiles((pathname)->{
            return pathname.getName().toLowerCase().endsWith(".java") || pathname.isDirectory();
        });
微信删除的聊天记录怎么恢复(2024年最新攻略合集) 随着微信对我们生活中方方面面的渗透,微信已然从一款简单的社交软件过渡成为现时代的一种生活方式,而微信中的聊天记录就是我们和朋友之间历程的最好证明。对此,今天我们来聊聊微信删除的聊天记录怎么恢复的问题。 阅读详情

相关推荐

基于近场动力学的二维疲劳裂纹扩展模型_近场动力学数值模拟的程序实现(1)——引言...

参考书目W. H. Gerstle. 2015. Introduction to Practical Peridynamic: Computational Solid Mechanics Without Stress and Strain.E.Madenci, A.Barut, M.Dorduncu. Peridynamic Differential Operator for Numerical ...

weixin_39764603的博客 1202

绝对路径和相对路径

System.out.println("file="+file.getAbsolutePath());System.out.println("目录-可以继续向下获取"+file);System.out.println("file="+file);//直接调用方法自身。System.out.println("文件"+file);目录,目录可以包含子文件或子目录,继续深入获取。//获取目录下的子目录或文件。路径,某一个资源(文件或目录)在计算机中的位置。如果传参的File对象是。...

weixin_69984559的博客 274

1.30 Cubemx_STM32H743 SD_Card纳入文件管理系统

Cubemx_STM32H743 SD_Card纳入文件管理系统1、简介2、CubeMX配置 1、简介 和前面文章原理其实一样的。 1.29 Cubemx_STM32F429\H743 nandflash、spifalsh纳入文件管理系统 现在一并将SD卡、NandFlash、SPIFlash一并作为文件管理。 下面直接介绍SDcard,其他参考前面文章。 2、CubeMX配置 ...

oDuanYanGuHong的博客 1079

File类学习概述

File类 file类主要是电脑中文件和文件夹目录封装为一个file类,我们可以使用file类对文件或者文件夹进行操作。 File类构造方法 这部分内容简单一点,可以看看java开发文档 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2W3okEgt-1595937530721)(G:\JavaNotes\IO读写相关\File类学习.assets\image-20200728185259806.png)] File(String pathname) 通过将给定路径名字符串

m0_49397863的博客 250

Contest 226 - C - Martial artist

from atcoder Problem Statement Time Limit: 2 sec / Memory Limit: 1024 MB Score :300300points Takahashi is a martial artist. There areNNmoves that a martial artist can learn, called Move11,22,\ldots…,NN. For each1 \leq i \leq N1≤i≤N, it takes...

m0_54674275的博客 1020

从 0 到 1,实战 Power BI 电商销售可视化看板全流程

本文详细介绍了从零开始使用Power BI构建电商销售可视化看板的全流程,涵盖数据准备、建模、可视化设计及高级功能应用。通过实战案例展示如何将复杂销售数据转化为直观图表,帮助电商从业者快速掌握销售趋势、热销产品和用户画像等关键信息,提升数据分析效率。

weixin_29061041的博客 484

File类

1. File类 File的每一个实例用于表示文件系统中的一个文件或目录 使用File可以: 查看其表示的文件或目录的属性信息(名字,大小等) 创建,删除文件或目录 访问一个个目录的所有子项 注意:不能访问文件数据 创建file时需要指定其表示的文件或目录的路径,而路径有两种: 1. 绝对路径:优点:清晰明了 缺点:是不同操作系统的路径定义不同,并且绝对路径不灵活可变,跨平台使用非常不便,...

SileeLiu的博客 214

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1113

使用File类查找某个文件夹下的文件

需求:使用File类查找某个文件夹下的文件

weixin_72979483的博客 296

AI时代敏捷开发新范式——意图驱动开发IDD

具体的功能代码、单元测试、集成测试用例,以及最终可运行的、支持PlantUML的Markdown转Word工具新版本。:业务方(如技术文档团队)反馈,现有的Markdown转Word工具在处理包含PlantUML代码块的文档时,无法正确生成图表,导致技术方案、架构图等关键信息丢失,严重影响了文档交付质量和团队效率。这不仅带来了交付周期显著缩短、资源效能倍增的可观收益,更深远的意义在于,它描绘了未来软件工业化、智能化的新图景:一个由精准意图驱动、AI自主执行、人类智慧引领的敏捷、高效、高质的新世界。

LiuJunjiang的专栏 551

中国农业银行——轻量式云原生应用平台(轻云平台)

2021年10月,中国人民银行等联合发布了《关于规范金融业开源技术应用与发展的意见》(银办发〔2021〕146 号),规范金融机构合理应用开源技术,提高应用水平和自主可控能力,促进开源技术健康可持续发展。前期,为助力成员单位做好开源技术应用与发展工作,北京金融科技产业联盟开源专委会组织了金融业开源技术应用、创新等方面的案例征集,现对部分优秀案例进行宣传,发挥先进典型示范引领作用。申报单位:中国农业银行股份有限公司技术领域:云原生、无服务器架构(Serverless)、DevOps。

银行信息系统应用架构详解 2392

文件搜索相关命令

find . -name “file” -type l : 查找当前目录下的file文件并且是链接文件。也可以改为 : find . -name “file” -a -type l。:逻辑与,在命令中用-a表示,是系统缺省的选项,表示只有当所给的条 件都满足时,寻找条件才算满足。-A除了显示符合范本样式的那一列之外,并显示该行之后的内容。-i忽略字符大小写的差别。-C除了显示符合样式的那一行之外,并显示该行之前后的内容。-B除了显示符合样式的那一行之外,并显示该行之前的内容。

2302_76775707的博客 317

机器人中的数值优化(十三)——QP二次规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 2793

JavaSE——File类详解(递归查找文件)

JavaSE——File类详解(递归查找文件)

雷神乐乐的博客 1555

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java:File类、递归、查找文件

1、File类-概述 1)java.io.File 这个类可以表示磁盘上的一个文件/目录,可以获取文件/目录的一些属性信息: 文件/目录的名字 文件的大小 文件/目录的最后修改时间 文件/目录是否可读、是否可写 2、File类-File类的构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径...

qq_38353993的博客 4114

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java基础之File类的使用 与查找相应文件实例

下面的话 从代码中找答案 输入路径 路径的 三种表示方式 判断文件是否存在 创建文件 判断是否是文件夹 文件夹的删除 (空文件夹可删 文件夹不为空 删除失败) 列出文件夹内所有文件名(仅是当前目录 不能更深一层) 列出所有的文件 以file对象返回 仅当前目录 有多种属性方法 可获得长度 名字 路径 等等等 其中最后修改时间 看下列截图 需要修改格式 其中还有相对路径(少)和绝对路径(多)的区...

C_time的博客 718

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

一、File类的使用

目录 一、概念 二、创建类的实例 (一)常用构造器 1.构造器1(public File(String pathname)) 2.构造器2(public File(String parent,String child)) 3.构造器3(public File(File parent,String chile)) (二)路径 1.相对路径 2.绝对路径 3.路径分隔符 ①.不同系统中有不同的路径分隔符 ②.注意事项 三、File类的常用方法 (一)获取 pub...

博客的博客 1625

Java File类(文件操作类)详解

在操作文件之前必须创建一个指向文件的链接或者实例化一个文件对象,也可以指定一个不存在的文件从而创建它。Java 中的 File 类是文件和目录路径名的抽象形式。使用 File 类可以获取文件本身的一些信息,例如文件所在的目录、文件长度、文件读写权限等。本节将对 File 类进行详细介绍。 File 类简介 在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。Fil...

jijiangpeng的博客 1830

Java中的File类及对文件的操作

File类: 文件和目录路径名的抽象表示形式 方法: 1、创建功能: public boolean createNewFile():创建文件,如果存在就不创建并返回false public boolean mkdir():创建文件夹,如果存在这样的文件夹就不创建并返回false public boolean mkdirs():创建多层文件夹,如果父文件夹不...

仙女的博客 795

Java 中使用 File 类创建文件

详细的介绍了 File 类的使用,及其常用方法。

weixin_74200123的博客 2036

File类(文件的删除,查找,创建,遍历等)

File类 概述 是java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建,查找,删除等操作。 Java是把电脑中的文件和文件夹(目录)封装成了一个File类,我们可以使用File类对文件和文件夹进行操作。 可以使用File类的方法 创建一个文件,文件夹 删除一个文件,文件夹 获取一个文件,文件夹 判断文件,文件夹是否存在 对文件夹进行遍历 获取文件的大小 File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法。 构造方法 public Fi

weixin_52284319的博客 317

Java:File类详解

Java:File类详解

游手好闲 1210

File类 文件的遍历与删除

文件File 文件可以永久性的保存信息,使数据持久化; File 类    1.java.io包;    2.创建对象:有参构造方法;     File file = new File(“D:\test\Test.txt”);    3.File是在内存中,与硬盘上的文件或文件夹是映射关系,一一对应;    4.File是不能操作文件中的内容的;    5.常用方法:     canRead()...

你好,Java!的博客 1551

File 类 读写文件操作

File 类 命名空间: System.IO 程序集: System.IO.FileSystem.dll 提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建FileStream对象。 示例 下面的示例演示如何使用File类检查文件是否存在,根据结果创建新文件并对其进行写入,或者打开现有文件并从中读取。在运行代码之前,请创建一个c:\temp文件夹 using System; using System.IO; class Test { public s...

weixin_46681279的博客 2280

JAVA 用File类创建文件或文件夹等

JAVA 用File类创建文件或文件夹等 1、File类相关函数 * boolean createNewFile() :创建文件 返回值表示是否创建成功 * ①当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 * ②如果路径不存在,就不能创建文件 * boolean mkdir() :创建...

海月汐辰 5811

java 操作文件File类

File 文件类 用来将文件或者文件夹封装成为对象。 方便对文件与文件夹的属性信息进行操作。 File对象可以作为参数传递给流的构造函数。 File 类的常用的方法。import java.io.*; /*File类的常见方法 1.创建。 boolean createNewFile(); boolean mkdir();创建文件夹 boolean mkdirs();

u011129848的专栏 7988
上一篇: 微信增加视频号模块,视频号的申请流程和规则
下一篇: Java面试必备指南
UP青年
博客等级 码龄10年 12粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值