java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)

简介: 这篇文章介绍了Java中使用`renameTo()`、`Files.copy()`等方法对文件进行重命名、移动和复制的操作,并提供了代码实例和测试效果。

文章目录

  • 1、文件的重命名操作
    • 1.1 renameTo()方法
    • 1.2 代码实例
    • 1.3 实际运用
    • 1.4 测试效果
  • 2、文件的移动(移动文件后、原路径下文件不存在)
    • 2.1 代码实例
    • 2.2 测试效果
  • 3、文件的复制移动(移动文件后、原路径下文件存在 )
    • 3.1 copy()方法
    • 3.2 代码实例
    • 3.3 实际运用
    • 3.4 测试效果

1、文件的重命名操作

1.1 renameTo()方法

boolean renameTo(File dest) :重命名由此抽象路径名表示的文件。
参数 :dest - 命名文件的新抽象路径名
结果 :true当且仅当重命名成功; false否则

  • 第一种使用场景:文件重命名

1.2 代码实例

    //组合原始文件的绝对路径
     File fixFile = new File(PreFileDir + "/" + fixFileName);
     File newFile = new File(PreFileDir + "/" + newFileName);
     //重命名操作
     Boolean flag = fixFile.renameTo(newFile);

1.3 实际运用

package com.autobranch.ibank.TestFile;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class TestRemoveFile {

    private String PreFileDir = "E:\\data\\sp\\FSN";
    private String fixFileName = "zheng.txt";

    //文件重命名
    public Boolean renameFixFile(String newFileName) {

        try {
            //组合原始文件的绝对路径
            File fixFile = new File(PreFileDir + "/" + fixFileName);
            File newFile = new File(PreFileDir + "/" + newFileName);
            //重命名操作
            Boolean flag = fixFile.renameTo(newFile);
            System.out.println(newFile.exists());

            if (flag) {
                return true;
            } else {
                return false;
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;
    }

    public static void main(String[] args) {
        TestRemoveFile File = new TestRemoveFile();
        Boolean flag = File.renameFixFile("zyz.txt");
        System.out.println("是否重命名成功:" + flag);
    }
}

1.4 测试效果

在这里插入图片描述
在这里插入图片描述


2、文件的移动(移动文件后、原路径下文件不存在)

renameTo(File dest): 该方法的行为的许多方面固有地依赖于平台:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,如果具有目标抽象路径名的文件可能无法成功已经存在。 应始终检查返回值,以确保重命名操作成功。

  • renameTo的第二种使用场景:将文件从一个路径移动到另一个路径下 ,并且移动的文件进行重命名【文件移动重命名】
    注意:移动后的文件、原始目录下是不存在的

2.1 代码实例

package com.autobranch.ibank.TestFile;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class TestRemoveFile {

    private String PreFileDir = "E:\\data\\sp\\FSN";
    private String targetFileDir = "E:\\data\\sp\\zheng";
    private String fixFileName = "zheng.txt";

    //文件重命名
    public Boolean renameFixFile(String newFileName) {

        try {
            //组合原始文件的绝对路径
            File fixFile = new File(PreFileDir + "/" + fixFileName);
            File newFile = new File(PreFileDir + "/" + newFileName);
            //重命名操作
            Boolean flag = fixFile.renameTo(newFile);
            System.out.println(newFile.exists());

            if (flag) {
                //还需要将重命名的文件移动到指定的位置
                String TargetFileDir = targetFileDir + "/" + newFile.getName();
                System.out.println(TargetFileDir);

                File fixFileDir = new File(newFile.getAbsolutePath());
                File targetFileDir = new File(TargetFileDir);

                if (targetFileDir.exists()) {
                    targetFileDir.delete();
                }

                Boolean rmoveFlag = fixFileDir.renameTo(targetFileDir);
                if (rmoveFlag) {
                    System.out.println("移动成功");
                    return true;
                } else {
                    System.out.println("移动失败");
                }

            } else {
                return false;
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;
    }

    public static void main(String[] args) {
        TestRemoveFile File = new TestRemoveFile();
        Boolean flag = File.renameFixFile("zyz.txt");
        System.out.println("是否重命名成功:" + flag);
    }
}

2.2 测试效果

在这里插入图片描述


在这里插入图片描述


3、文件的复制移动(移动文件后、原路径下文件存在 )

3.1 copy()方法

copy(Path source, Path target, CopyOption… options): 将文件复制到目标文件。
参数 :source - 要复制的文件的路径 。target - 目标文件的路径(可能与源路径的不同提供程序相关联) 。options - 指定副本应如何完成的选项
结果 :目标文件的路径

3.2 代码实例

    //文件移动到指定文件
    private Boolean copyFile(String filename, String oldpath, String newpath) {
        try {
            File oldPaths = new File(oldpath + "/" + filename);
            File newPaths = new File(newpath + "/" + filename);

            if (!newPaths.exists()) {
                Files.copy(oldPaths.toPath(), newPaths.toPath());
            } else {
                newPaths.delete();
                Files.copy(oldPaths.toPath(), newPaths.toPath());
                return true;
            }

        } catch (IOException e) {
            e.printStackTrace();

        }
        return false;
    }

3.3 实际运用

package com.autobranch.ibank.TestFile;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class TestRemoveFile {

    private String PreFileDir = "E:\\data\\sp\\FSN";
    private String targetFileDir = "E:\\data\\sp\\zheng";
    private String fixFileName = "zheng.txt";

    //文件移动到指定文件
    private Boolean copyFile(String filename, String oldpath, String newpath) {
        try {
            File oldPaths = new File(oldpath + "/" + filename);
            File newPaths = new File(newpath + "/" + filename);

            if (!newPaths.exists()) {
                Files.copy(oldPaths.toPath(), newPaths.toPath());
            } else {
                newPaths.delete();
                Files.copy(oldPaths.toPath(), newPaths.toPath());
                return true;
            }

        } catch (IOException e) {
            e.printStackTrace();

        }
        return false;
    }

    //文件重命名
    public Boolean renameFixFile(String newFileName) {

        try {
            //组合原始文件的绝对路径
            File fixFile = new File(PreFileDir + "/" + fixFileName);
            File newFile = new File(PreFileDir + "/" + newFileName);
            //重命名操作
            Boolean flag = fixFile.renameTo(newFile);
            System.out.println(newFile.exists());

            if (flag) {

//                调用方法进行复制移动
               Boolean copyFlag = this.copyFile(newFileName,PreFileDir,targetFileDir);
               if(copyFlag){
                   System.out.println("移动成功");
                   return true;
               }else{
                   return false;
               }

            } else {
                return false;
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;
    }

    public static void main(String[] args) {
        TestRemoveFile File = new TestRemoveFile();
        Boolean flag = File.renameFixFile("zyz.txt");
        System.out.println("是否重命名成功:" + flag);
    }
}

3.4 测试效果

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章
|
15天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
45 2
|
18天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
42 2
|
27天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
28天前
|
Java 编译器 Maven
Java“class file contains wrong class”解决
当Java程序运行时出现“class file contains wrong class”错误,通常是因为类文件与预期的类名不匹配。解决方法包括:1. 确保类名和文件名一致;2. 清理并重新编译项目;3. 检查包声明是否正确。
|
29天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
37 4
|
1月前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
1月前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
2月前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
30 0
|
Java 大数据 Apache