我正在为一个课程编写一个程序,该程序涉及创建一个临时音频文件,从中读取数据,然后将其删除。我一切正常,除了删除文件。当我尝试删除文件时,file.delete()
返回false
. 我试图弄清楚使用java.nio
文件到底出了什么问题,并返回另一个进程打开了文件。查看我的代码后,我将其范围缩小到AudioInputStream
保持文件打开。我可以在创建之前很好地删除文件AudioInputStream
,但是文件在创建后无法删除,尽管我在尝试删除文件之前关闭了流。
if (file != null && file.isFile())
{
try
{
audioInputStream = null;
try
{
audioInputStream = AudioSystem.getAudioInputStream(file);
}
catch (Exception e)
{
System.out.println(e);
}
finally
{
audioInputStream.close();
}
System.out.println("Attempted to delete wav file. Succesfull = " + file.delete());
}
}
我也尝试过audioInputStream.close()
在 catch 之后放置,而不是在一个finally
类似的结果中。
为什么输入流在文件关闭后保持打开状态?