gpt4 book ai didi

java - 使用 Tomcat 和 servlet 时如何删除 txt 文件?

转载 作者:行者123 更新时间:2023-11-30 07:38:18 25 4
gpt4 key购买 nike

我正在开发一个使用 Tomcat 和 servlet 的应用程序。

有一个 servlet (audioProcess) 接收播放的 mp3 文件的名称。此 servlet 还处理 mp3 文件并将结果存储在 txt 文件中。当再次调用 audioProcess servlet(使用不同的 mp3 文件)时,将替换此 txt 的内容。

每次调用此 servlet 时,我都会删除 txt 并创建一个新文件(包含有关 mp3 文件的信息)。 txt 文件的名称始终相同。

我的问题是 txt 文件永远不会被删除。我删除文件的方法是:

File a = new File(path_clasificacion);

if(a.exists())
{
boolean erased = a.delete();
out.println("erased?" + erased);
}

我第一次调用 servlet 时,txt 文件被删除了。只是第一次。删除 txt 文件后,我尝试将新信息写入具有相同名称的 txt 文件(存储在相同路径中)。发生的情况是旧文件没有被删除,新信息被添加到文件中。

为什么我不能删除文件?

谢谢

txt 文件是使用以下代码生成的:

FileWriter f = null;
PrintWriter pw = null;

try
{
f = new FileWriter(path,true);
pw = new PrintWriter(f);
pw.println(info);
} catch (Exception e) {e.printStackTrace();

finally
{
f.close();
}

最佳答案

只要您有一个打开的文件句柄,您就不能删除该文件。

查看您的代码并确保close() 任何流或阅读器。这显然包括确保从 MP3 摘要库代码中对它的任何引用也被关闭。

“那第一次呢?”你会问。回答:您从 erase() 调用中获得了肯定状态,因为删除请求已成功传递到操作系统。然而,操作系统仍在摆弄它的拇指,等待您最终放开文件。因此,即使是第一次,该文件也没有真正(物理上)删除。

关于java - 使用 Tomcat 和 servlet 时如何删除 txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039160/

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