教你使用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面向对象编程文章查看此处

相关文章
|
14小时前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
10 3
|
1天前
|
Java 开发者
Java一分钟之-Java IO流:文件读写基础
【5月更文挑战第10天】本文介绍了Java IO流在文件读写中的应用,包括`FileInputStream`和`FileOutputStream`用于字节流操作,`BufferedReader`和`PrintWriter`用于字符流。通过代码示例展示了如何读取和写入文件,强调了常见问题如未关闭流、文件路径、编码、权限和异常处理,并提供了追加写入与读取的示例。理解这些基础知识和注意事项能帮助开发者编写更可靠的程序。
6 0
|
1天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
1天前
|
Java
java中File转为MultipartFile的问题解决
java中File转为MultipartFile的问题解决
|
1天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
2天前
|
Java 编译器 开发者
Java一分钟之-继承:复用与扩展类的特性
【5月更文挑战第9天】本文探讨了Java中的继承机制,通过实例展示了如何使用`extends`创建子类继承父类的属性和方法。文章列举了常见问题和易错点,如构造器调用、方法覆盖、访问权限和类型转换,并提供了解决方案。建议深入理解继承原理,谨慎设计类结构,利用抽象类和接口以提高代码复用和扩展性。正确应用继承能构建更清晰、灵活的代码结构,提升面向对象设计能力。
9 0
|
11月前
|
存储 Java 编译器
Java语言------图书馆管理系统(入门简略版)
Java语言------图书馆管理系统(入门简略版)
94 0
Java语言------图书馆管理系统(入门简略版)
|
Java
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
96 0
|
JavaScript 前端开发 Java
java语言入门总结
java语言入门总结
58 0
|
设计模式 Java 关系型数据库
java语言学习路线目录,从入门到资深工程师要掌握的技术
1.JAVA知识基础 1.1JAVA基础 推荐书籍:编程思想 1.掌握java常用技术,io、多线程、反射、常用集合框架 2.对处理输入输出的IO进行熟悉,用于笔试
119 0