无法修改作为参数输入的文件JAVA

时间:2017-08-18 10:49:58

标签: java

我试图让这个工作,但它没有,我不明白为什么, 它应该是一个脚本,我输入一个参数文件,并用它中的正确替换字符替换它。 它不会替换我作为参数输入的文件。 我可以让它工作如果我将整个代码放在main函数中而不调用方法。

感谢。

public class Rename 
{
    public static void main(String[] args) throws IOException{
        File origine = new File(args[0]);
        renameFile(origine);
    }
    public static void renameFile(File fileOriginal) throws IOException
    {
        try 
        {
            File tempFile = File.createTempFile("buffer", ".tmp");
            FileWriter fw = new FileWriter(tempFile);

            Reader fr = new FileReader(fileOriginal);
            BufferedReader br = new BufferedReader(fr);

            while (br.ready()) 
            {
                fw.write(br.readLine().replace("#/A#" , "Á"));
            }

            fw.close();
            br.close();
            fr.close();

            tempFile.renameTo(fileOriginal);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:3)

  • renameTo()返回一个值。你忽略了它。
  • 您无法将文件重命名为现有文件的名称。您必须确保目标名称不存在。
  • ready()不是对流结束的测试:请参阅Javadoc。
  • 不应将修改文件内容的方法称为renameFile()