Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java删除文件后如何释放资源?_Java_File_Delete File_Veracode - Fatal编程技术网

java删除文件后如何释放资源?

java删除文件后如何释放资源?,java,file,delete-file,veracode,Java,File,Delete File,Veracode,我编写代码来删除文件,就像: File logFile = new File(fileName); deleteSuccess = logFile.delete(); 但是Veracode:给我一些关于资源未发布的警告。我想知道删除文件后如何释放资源 Veracode错误如下所示 Veracode: 说明 应用程序无法释放(或不正确地释放)系统资源,然后才能重新使用。这种情况通常发生在数据库连接或文件句柄等资源中。大多数未释放的资源问题会导致一般的软件可靠性问题,但如果攻击者可以故意触发资源

我编写代码来删除文件,就像:

File logFile = new File(fileName);

deleteSuccess = logFile.delete();
但是Veracode:给我一些关于资源未发布的警告。我想知道删除文件后如何释放资源

Veracode错误如下所示

Veracode:

说明
应用程序无法释放(或不正确地释放)系统资源,然后才能重新使用。这种情况通常发生在数据库连接或文件句柄等资源中。大多数未释放的资源问题会导致一般的软件可靠性问题,但如果攻击者可以故意触发资源泄漏,则可能会通过耗尽资源池来发起拒绝服务攻击

推荐
创建或分配资源时,开发人员负责正确释放资源,并说明所有可能的过期或无效路径。确保所有代码路径正确释放资源。

您确定这就是您的全部代码吗?因为它没有什么问题。文件对象只是文件名的包装器,没有为其分配资源。delete方法也只调用适当的操作系统函数,不需要随后进行任何清理


您需要关闭的是从该文件派生的流(但您似乎没有任何流)。

您确定这就是您的全部代码吗?因为它没有什么问题。文件对象只是文件名的包装器,没有为其分配资源。delete方法也只调用适当的操作系统函数,不需要随后进行任何清理


您需要关闭的是从该文件派生的流(但您似乎没有任何流)。

删除操作成功后,您可以尝试显式地将
文件
对象置零(如有必要,请检查返回的布尔值,但如果删除操作失败,我不知道您的意图)。至少通过这种方式,您可以确信对
文件
对象的引用丢失了,因此所有相关对象也都有资格进行垃圾收集

如果VercaCode继续将此标记为警告,我认为您有理由忽略此问题


虽然建议的更改不会增加任何值,特别是如果文件对象超出范围后有资格进行垃圾收集,但如果您希望消除此警告,则可以采用这种做法。

一旦删除操作成功,您可以尝试显式地使
文件
对象无效(如有必要,请检查返回的布尔值,但如果删除操作失败,我不知道您的意图)。至少这样,您就可以确定对
文件
对象的引用丢失了,因此所有相关对象也都有资格进行垃圾收集

如果VercaCode继续将此标记为警告,我认为您有理由忽略此问题


虽然建议的更改不会增加任何价值,特别是如果文件对象超出范围后有资格进行垃圾收集,但如果您希望消除此警告,则可以采用这种做法。

是的,关闭流是必要的,但对于删除,我不知道我可以发布什么。我认为该工具出错了。您认为获取其他您不理解或不同意的警告?是的,关闭流是必要的,但对于删除,我不知道我可以发布什么。我认为该工具出错。您是否获取其他您不理解或不同意的警告?谢谢您的建议,我将尝试接受您的建议,我将尝试