我有此代码:
try {
BufferedWriter bw = null;
FileWriter fw = null;
try {
final String fileName = getFileName();
File propertiesFile=new File(getFilesDir(), fileName);
fw = new FileWriter(propertiesFile);
bw = new BufferedWriter(fw);
bw.write(s);
File file = new File(getFilesDir(), fileName);
} catch (IOException e) {
}finally{
if(bw != null){
bw.close();
}
if(fw != null){
fw.close();
}
if(bw != null){
bw.close();
}
}
} catch (Exception e) {
}
Veracode在此行 bw.write(s); 上检测到漏洞(不正确的资源关闭或释放)。 如何解决这个问题? 预先感谢
答案 0 :(得分:0)
尝试最终修复该漏洞,并在内部最终关闭BufferedWriter和FileWriter
try {
BufferedWriter bw = null;
FileWriter fw = null;
try {
final String fileName = getFileName();
File propertiesFile=new File(getFilesDir(), fileName);
fw = new FileWriter(propertiesFile);
bw = new BufferedWriter(fw);
bw.write(s);
File file = new File(getFilesDir(), fileName);
}finally{
if(bw != null){
bw.close();
}
if(fw != null){
fw.close();
}
}
} catch (Exception e) {
}
答案 1 :(得分:0)
使用可以从 java 7 开始使用 try-with-resources
try (FileWriter fw = new FileWriter(propertiesFile);
BufferedWriter bw = new BufferedWriter(fw)){
......
}catch (Exception e){}