创建临时文件并重命名为实际文件

时间:2017-12-10 09:21:33

标签: java io

我正在尝试创建一个临时文件,然后将其重命名为可用文件。临时文件是在%temp%中创建的,但未重命名: -

    static void writeFile() {
    try {
        File tempFile = File.createTempFile("TEMP_FAILED_MASTER", "");

        PrintWriter pw = new PrintWriter(tempFile);
        for (String record : new String[] {"a","b"}) {
            pw.println(record);
        }
        pw.flush();
        pw.close();
        System.out.println(tempFile.getAbsolutePath());

        File errFile = new File("C:/bar.txt");
        tempFile.renameTo(errFile);
        System.out.println(errFile.getAbsolutePath());
        System.out.println("Check!");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

重命名失败的原因有几个。常见的是:

  • 您没有源或目标目录的写入权限。
  • 您要重命名的文件已打开(在Windows上)
  • 您正在尝试重命名不同的文件系统。

如果使用File.renameTo,可能很难诊断这些(和其他)失败原因,因为你得到的只是一个布尔返回值。

我建议改用Files.move。它可以处理文件系统之间的文件移动,如果无法重命名文件,则会抛出异常。