Java 如何解决不正确的资源关闭或释放问题
我提交了Veraocode安全测试工具的代码,并通过以下代码获得了此不正确的资源关闭或发布:Java 如何解决不正确的资源关闭或释放问题,java,security,veracode,Java,Security,Veracode,我提交了Veraocode安全测试工具的代码,并通过以下代码获得了此不正确的资源关闭或发布: //This function is used to print trace in the in the LogFile for debugging purpose PrintWriter f; try { f = new PrintWriter(new BufferedWriter(new FileWriter(fileName,tr
//This function is used to print trace in the in the LogFile for debugging purpose
PrintWriter f;
try {
f = new PrintWriter(new BufferedWriter(new FileWriter(fileName,true)));//issue at this line
synchronized(this) {
f.println(new StringBuffer(dateString).append("<").append(Thread.currentThread().getName()).append(">").append(traceLog).toString());
}
f.close();
checkFileSize();
}catch(IOException e){
e.printStackTrace();
}
//此函数用于打印日志文件中的跟踪,以进行调试
印刷作家f;
试试{
f=new PrintWriter(new BufferedWriter(new FileWriter(fileName,true));//这一行的问题
已同步(此){
f、 println(newstringbuffer(dateString).append(“”).append(traceLog.toString());
}
f、 close();
checkFileSize();
}捕获(IOE){
e、 printStackTrace();
}
有人请帮我做这个…你需要关闭你的PrintWriter
f.close();
您需要关闭PrintWriter
f.close();
试试{
f=new PrintWriter(new BufferedWriter(new FileWriter(fileName,true));//这一行的问题
已同步(此){
f、 println(newstringbuffer(dateString).append(“”).append(traceLog.toString());
}
checkFileSize();
}捕获(IOE){
e、 printStackTrace();
}最后{
如果(f!=null){
f、 close();
}
}
资源应该在finally子句中关闭。所以他们肯定会被处死。因为如果您将结束代码放入try,并且在结束行之前发生了一些异常。资源未正确关闭
另外,如果您使用的是JDK-7,请参阅参考资料中的try
f=new PrintWriter(new BufferedWriter(new FileWriter(fileName,true));//这一行的问题
已同步(此){
f、 println(newstringbuffer(dateString).append(“”).append(traceLog.toString());
}
checkFileSize();
}捕获(IOE){
e、 printStackTrace();
}最后{
如果(f!=null){
f、 close();
}
}
资源应该在finally子句中关闭。所以他们肯定会被处死。因为如果您将结束代码放入try,并且在结束行之前发生了一些异常。资源未正确关闭
另外,如果您使用的是JDK-7,请查看try with resources。您还需要在catch块中关闭PrintWriter,或者创建finally块并关闭资源
}catch(IOException e){
e.printStackTrace();
f.close();
}
或
您还需要在catch块中关闭PrintWriter,或者创建finally块并关闭资源
}catch(IOException e){
e.printStackTrace();
f.close();
}
或