java 资源泄露问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 13:20:38
public boolean writeBlockComment(String theComment) {

rawData.add(BuildingBlock.comment+theComment);
return true;

}

/** Writes the buildingBlock data to a file.
* @param fileName File to write. Overwrites existing files.
* @return Returns true on success.
*/
public boolean writeBlockFile(String fileName) {

File file = new File(fileName);

if (file.exists()) {
if (!file.delete()) {

System.err.println("Unable to delete file...(so I could re-write it)"); //$NON-NLS-1$
return false;
}
}

try {

// file.createNewFile();

BufferedWriter out = new BufferedWriter(new FileWriter(file));

for (int c = 0; c < rawData.size(); c++) {

catch完后加个finally,在里面写out.flush();
out.close();
因为finally里的东西不管try里是否实现都会执行,不会泄漏

没有

IO流的设计是包裹模式。。。关掉最外面的就等于全关了

应该在Finally里面关,否则文件没有关闭,