gpt4 book ai didi

Java 6 文件删除

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:26 24 4
gpt4 key购买 nike

我知道这个问题是 this 的严重重复问题。 但是,我现在已经将整个页面阅读了两遍,某些部分阅读了 3 遍,而且对于我的生活,我看不出它是如何/在哪里得到回答的!

那么,关于我的问题。

我在工作,一直在使用 Java 6 SE,无法升级到 7。我正在编写一个程序来创建文件、写入文件、进行一些处理,然后需要将文件删除。我遇到的问题与提出我上面提到的问题的人完全相同:Java 不会删除文件,我不知道为什么。

代码:

File f = null;
FileWriter fw = null;
try
{
f = new File("myFile.txt");
fw = new FileWriter(f);
fw.write("This is a sentence that should appear in the file.");
fw.flush();
if(f.delete())
System.out.println("File was successfully deleted.");
else
System.err.println("File was not deleted.");
}
catch(Exception exc)
{
System.err.println(exc.getMessage());
}
catch(Error er {
System.err.println(er.getMessage());
}
catch(Throwable t)
{
System.err.println(t.getMessage());
}
finally
{
fw.close();
}

它不会抛出任何可抛出的东西、错误或异常(我包括那些以排除任何和所有边缘情况)。第二个打印语句 ("File was not deleted.") 被打印到控制台。我在 Windows 7 上运行它并写入我拥有完全权限 (rwx) 的文件夹。

提出我提到的问题的用户回答了他自己的问题,但(以我的拙见)以一种不太直截了当的方式这样做。无论如何,我很难理解它。他/她似乎暗示使用 BufferedReader 而不是 FileInputStream 对他/她产生了影响,但我只是不明白这是怎么回事适用。

Java 7 似乎通过引入 java.nio.file.Files 类解决了这个问题,但同样,由于超出我控制范围的原因,我无法使用 Java 7 .

该问题的其他回答者暗示这是 Java 中的一个“错误”,并给出了各种规避方法,例如显式调用 System.gc() 等。我已经尝试了所有这些,他们不工作。

也许有人可以添加一个新的视角并为我慢跑一些思考。

最佳答案

您正在尝试删除 () 一个文件,该文件仍被 Activity 的、打开的 FileWriter 引用。

试试这个:

f = new File("myFile.txt");
fw = new FileWriter(f);
fw.write("This is a sentence that should appear in the file.");
fw.flush();
fw.close(); // actually free any underlying file handles.
if(f.delete())
System.out.println("File was successfully deleted.");
else
System.err.println("File was not deleted.");

关于Java 6 文件删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com