如何在不创建另一个文件的情况下重命名文件(Java)

用户名

我正在寻找一种将文件重命名为字符串的方法。namedTo只接受另一个文件作为参数,但我希望它接受字符串。因此,基本上,如何在这里实现此方法?

public static void renameFile(File toBeRenamed, String new_name) {

}

我想将文件“ toBeRenamed”重命名为“ new_name”。我是否必须制作另一个名为new_name的文件,还是有一些解决方法?谢谢!

编辑:感谢您的答案Luiggi。这是新错误的图片:

在此处输入图片说明

路易吉·门多萨

File类并不代表硬盘驱动器的物理文件,它只是一个抽象表示创建File的新实例并不意味着您正在创建物理文件。

通过了解这一点,您可以使用新文件来重命名文件,File而不必担心创建新的物理文件。代码改编自使用Java重命名文件

public static void renameFile(File toBeRenamed, String new_name)
    throws IOException {
    //need to be in the same path
    File fileWithNewName = new File(toBeRenamed.getParent(), new_name);
    if (fileWithNewName.exists()) {
        throw new IOException("file exists");
    }
    // Rename file (or directory)
    boolean success = toBeRenamed.renameTo(fileWithNewName);
    if (!success) {
        // File was not successfully renamed
    }
}

编辑:根据您的问题更新和对此评论:

我拍了一张错误的照片。“未处理的异常类型IO异常”

看起来其中之一:

  1. 您不知道如何处理检查的异常。

    为此,您应该将抛出Exception(或子类)的方法包装在一条try-catch语句中:

    String new_name = getFilename(file);
    try {
        renameFiles(files[i], new_name);
    } catch (IOException e) {
        //handle the exception
        //using a basic approach
        e.printStacktrace();
    }
    

    更多信息:Java教程。课程:例外

  2. 您不希望您的方法引发检查异常。在这种情况下,最好抛出未检查的异常,因此您不需要手动处理该异常。这可以通过抛出以下内容的新实例RuntimeException或子类来完成:

    public static void renameFile(File toBeRenamed, String new_name) {
        File fileWithNewName = new File(new_name);
        if (fileWithNewName.exists()) {
            throw new RuntimeException("file exists.");
        }
        // Rename file (or directory)
        boolean success = toBeRenamed.renameTo(fileWithNewName);
        if (!success) {
            // File was not successfully renamed
        }
    }
    

    上一节中发布的链接中的更多信息。

  3. 您根本不想抛出异常。在这种情况下,最好至少返回一个值来知道文件是否被正确重命名:

    public static boolean renameFile(File toBeRenamed, String new_name) {
        //need to be in the same path
        File fileWithNewName = new File(toBeRenamed.getParent(), new_name);
        if (fileWithNewName.exists()) {
            return false;
        }
        // Rename file (or directory)
        return toBeRenamed.renameTo(fileWithNewName);
    }
    

    并相应地更新代码:

    String new_name = getFilename(file);
    boolean result = renameFiles(files[i], new_name);
    if (!result) {
        //the file couldn't be renamed
        //notify user about this
        System.out.println("File " + files[i].getName() + " couldn't be updated.");
    }
    

选择哪一个?将完全取决于您的口味。如果您是我,则可以使用第三个选项进行快速的肮脏或学习阶段的工作,但是对于真实世界的应用程序,我可以使用第二个选项,但可以使用从扩展的自己的自定义异常RuntimeException

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不创建另一个文件的情况下重命名文件(Java)

来自分类Dev

如何在不写入Java中另一个文件的情况下删除文件的一行

来自分类Dev

如何在不编写新函数的情况下从另一个文件调用变量

来自分类Dev

如何在不签出的情况下获取另一个分支中的文件列表?

来自分类Dev

如何在不编写新函数的情况下从另一个文件调用变量

来自分类Dev

如何在不创建实例的情况下访问另一个类内声明的类?

来自分类Dev

如何在不创建子类和/或继承类的情况下从另一个类调用对象的方法?

来自分类Dev

如何在不创建新对象的情况下从另一个类访问变量

来自分类Dev

我如何在不创建另一个bean id的情况下访问类的相同实例

来自分类Dev

如何在不丢失分隔符的情况下将带有空格的文件名分配给另一个变量

来自分类Dev

如何在不丢失父目录的情况下将多个同名文件从子目录复制到另一个目录?

来自分类Dev

如何在不创建任何新管道或文件的情况下将输出从一个终端发送到另一终端

来自分类Dev

如何在不翻转的情况下显示Boxplot与另一个图的翻转?

来自分类Dev

如何在不包含另一个XML的情况下引用它?

来自分类Dev

如何在不挤压的情况下将视图与另一个视图对齐

来自分类Dev

在不更改当前目录的情况下,在Linux的另一个目录中创建一个空文件吗?

来自分类Dev

如何在不使用require函数的情况下将npm模块导出到另一个文件

来自分类Dev

在某些情况下如何从另一个打开.bat文件

来自分类Dev

在不不断创建新对象的情况下,如何在php中从另一个类调用一个类?

来自分类Dev

如何在不使用for循环的情况下将一个csv文件的通用记录搜索到另一个csv文件

来自分类Dev

如何在不创建群组的情况下表达“匹配一个单词或另一个单词”?

来自分类Dev

如何在不更新原始向量的情况下将一个向量复制到Java中的另一个向量?

来自分类Dev

如何在不更新原始向量的情况下将一个向量复制到Java中的另一个向量?

来自分类Dev

如何在不创建新类实例的情况下从另一个类调用我的非静态函数?-反应本机路由器流量

来自分类Dev

Gradle Multiproject Build:如何在不创建伪项目的情况下将WAR项目的JAR包含到另一个WAR中

来自分类Dev

如何在不创建另一个类的情况下将图像添加到回收站视图?

来自分类Dev

如何在不锁定MYSQL 6.2中的表的情况下从另一个表复制数据?

来自分类Dev

如何在不声明类型的情况下将模板发送到另一个模板?

来自分类Dev

如何在不覆盖OnBackPressed()的情况下从通知启动的活动导航到另一个活动?

Related 相关文章

  1. 1

    如何在不创建另一个文件的情况下重命名文件(Java)

  2. 2

    如何在不写入Java中另一个文件的情况下删除文件的一行

  3. 3

    如何在不编写新函数的情况下从另一个文件调用变量

  4. 4

    如何在不签出的情况下获取另一个分支中的文件列表?

  5. 5

    如何在不编写新函数的情况下从另一个文件调用变量

  6. 6

    如何在不创建实例的情况下访问另一个类内声明的类?

  7. 7

    如何在不创建子类和/或继承类的情况下从另一个类调用对象的方法?

  8. 8

    如何在不创建新对象的情况下从另一个类访问变量

  9. 9

    我如何在不创建另一个bean id的情况下访问类的相同实例

  10. 10

    如何在不丢失分隔符的情况下将带有空格的文件名分配给另一个变量

  11. 11

    如何在不丢失父目录的情况下将多个同名文件从子目录复制到另一个目录?

  12. 12

    如何在不创建任何新管道或文件的情况下将输出从一个终端发送到另一终端

  13. 13

    如何在不翻转的情况下显示Boxplot与另一个图的翻转?

  14. 14

    如何在不包含另一个XML的情况下引用它?

  15. 15

    如何在不挤压的情况下将视图与另一个视图对齐

  16. 16

    在不更改当前目录的情况下,在Linux的另一个目录中创建一个空文件吗?

  17. 17

    如何在不使用require函数的情况下将npm模块导出到另一个文件

  18. 18

    在某些情况下如何从另一个打开.bat文件

  19. 19

    在不不断创建新对象的情况下,如何在php中从另一个类调用一个类?

  20. 20

    如何在不使用for循环的情况下将一个csv文件的通用记录搜索到另一个csv文件

  21. 21

    如何在不创建群组的情况下表达“匹配一个单词或另一个单词”?

  22. 22

    如何在不更新原始向量的情况下将一个向量复制到Java中的另一个向量?

  23. 23

    如何在不更新原始向量的情况下将一个向量复制到Java中的另一个向量?

  24. 24

    如何在不创建新类实例的情况下从另一个类调用我的非静态函数?-反应本机路由器流量

  25. 25

    Gradle Multiproject Build:如何在不创建伪项目的情况下将WAR项目的JAR包含到另一个WAR中

  26. 26

    如何在不创建另一个类的情况下将图像添加到回收站视图?

  27. 27

    如何在不锁定MYSQL 6.2中的表的情况下从另一个表复制数据?

  28. 28

    如何在不声明类型的情况下将模板发送到另一个模板?

  29. 29

    如何在不覆盖OnBackPressed()的情况下从通知启动的活动导航到另一个活动?

热门标签

归档