如何使用Java

时间:2018-03-25 17:42:18

标签: java java-io

我有一堆文件包含我要在其中替换的字符。例如,如果一个文件被调用" test!file.txt"系统应该打印出来,然后将文件名改为" test_file.txt"。我不想将整个文件重命名为"!"。并且有很多文件,所以重命名只有一个单独的工作。我希望程序能够改变所有的"!"在所有文件名中为" _"。这是我的代码,但它只打印文件名并且不替换它。

import java.io.*;

class Files {
    public static void main(String[] args) {
        File folder = new File(".");
        String replaceThis = "!";

        for (File file : folder.listFiles()) {
            if (file.getName().contains(replaceThis)) {
                System.out.println(file.getName());
                file.getName().replace(replaceThis, "_");

            }
        }
    }
}

2 个答案:

答案 0 :(得分:-1)

查看java.io.File中的renameTo()方法。

此外,由于Strings被设计为不可变的,因此您实际上并未更改代码中的任何文件名。 String::replace()返回一个带有替换的新String,它不会更改调用它的String。

答案 1 :(得分:-1)

修改代码的这一部分:

if (file.getName().contains(replaceThis)) {
            System.out.println(file.getName());
            file.getName().replace(replaceThis, "_");

        }

name = file.getName();
newFile = //your logic for new file name
File file2 = new File(newFile);
file.renameTo(file2);