Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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_Security_Veracode - Fatal编程技术网

Java 如何解决不正确的资源关闭或释放问题

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

我提交了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,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();
}