教你使用File类批量修改文件名称 | 带你学《Java语言高级特性》之五十

简介: 在上一节中我们实操File类,完成了对目录中文件的列出、判空清除操作,本节将接续上一节案例,实现对文件命名的批量修改。

上一篇:教你使用File类列出目录所有文件 | 带你学《Java语言高级特性》之四十九

在上一节中我们实操File类,完成了对目录中文件的列出、判空清除操作,本节将接续上一节案例,实现对文件命名的批量修改。

【本节目标】
通过阅读本节内容,你将进一步掌握File类的相关方法,了解文件名称编辑的一些常见套路,实现指定目录下的文件名的批量修改操作。

File操作案例:批量修改文件名称

编写程序,程序运行时输入目录名称,并把该目录下的所有文件名后缀修改为.txt。

对于这类的操作必须设置一些假设的约定,能够重命名的文件都是有后缀的,如果没有后缀的路径,则为其追加路径,如果有后缀的路径,则必须以最后一个“.”进行截取。

import java.io.File;
public class JavaAPIDemo {
    public static void main(String[] args)throws Exception{
        File file = new File("D:"+ File.separator +"test") ;   //是一个目录
        long start = System.currentTimeMillis();
        renameDir(file);
        long end = System.currentTimeMillis();
        System.out.println("本次操作所花费的时间" + (end - start));
    } 
    public static void renameDir(File file) {
        if(file.isDirectory()) {    //是一个目录
            File results [] = file.listFiles();   //列出子目录中的内容
            if(results != null) {
               for(int x = 0 ; x < results.length;x ++) {
                  renameDir(results[x]) ;
               }
            }
        }else {
             if(file.isFile()) {    //如果是文件则必须进行重命名
                  String fileName = null;
                  if(file.getName().contains(".")) {
                     fileName = file.getName().substring(0,file.getName().lastIndexOf("."))+ ".txt";
                  }else {
                     fileName = file.getName() + ".txt";
                  }
                  File newFile = new File(file.getParentFile(),fileName);  //新的文件名称
                  file.renameTo(newFile);  //重命名
             }
        }
       
    }
}

在面试过程之中经常会出现给你一个路径而后让你进行名称或文件的批量修改操作,那么就采用以上的代码结构即可。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:文件I/O:初识流的概念 | 带你学《Java语言高级特性》之五十一
更多Java面向对象编程文章查看此处

相关文章
|
6天前
|
JavaScript Java
Java 将Markdown文件转换为Word和PDF文档
【7月更文挑战第5天】Java中使用`Spire.Doc for Java`库可方便地将Markdown转换为Word或PDF。基本步骤包括导入模块,创建`Document`对象,加载Markdown文件,然后保存为目标格式(`.docx`或`.pdf`)。若遇到`Invalid UTF-8 stream`错误,需确保Markdown文件是UTF-8无BOM编码。页面设置可通过`PageSetup`类调整。注意,实际应用会依据具体需求和环境有所调整。
|
6天前
|
关系型数据库 MySQL Java
|
13天前
|
算法 Java 编译器
透视Java语言的究极优化:探索性能的深度
在Java程序员的日常工作中,优化代码性能是一项至关重要的任务。然而,除了传统的性能调优方法外,本文将探讨一些更为深奥的技术,如JIT编译器的内部工作机制、GC算法的进阶应用以及多线程并发模型的优化策略。通过深入了解这些技术背后的原理和实现,我们可以更好地理解如何在Java平台上实现最高效的代码运行。 【7月更文挑战第11天】
27 4
|
2天前
|
存储 算法 Java
Java类是在什么时候加载到JVM中的?加载类时,实际上加载的是什么
Java类是在什么时候加载到JVM中的?加载类时,实际上加载的是什么
|
6天前
|
分布式计算 Java 调度
MaxCompute产品使用合集之使用Tunnel Java SDK上传BINARY数据类型时,应该使用什么作为数据类字节
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
12天前
|
easyexcel Java Apache
EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File
EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File
|
12天前
|
Java 大数据 API
Java语言的核心知识点与特性
Java 是一种广泛使用的编程语言,自 1995 年发布以来,它已经成为了企业级应用开发、移动应用开发、大数据处理和云计算等领域的主流技术。
20 0
|
14天前
|
存储 运维 前端开发
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
24 0
|
13天前
|
Java 调度
Java线程的六种状态
Java线程有六种状态: 初始(NEW)、运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)、终止(TERMINATED)。
34 1
|
2天前
|
监控 Java
Java并发编程:深入理解线程池
在Java并发编程领域,线程池是提升应用性能和资源管理效率的关键工具。本文将深入探讨线程池的工作原理、核心参数配置以及使用场景,通过具体案例展示如何有效利用线程池优化多线程应用的性能。