我有以下 Java 类,它做一件事,从config.properties
.
当到了关闭的时候fileInputStream
,我想我在维基百科上读到,将它放在finally块中是很好的。因为它确实在 try/catch 块中工作得很好。
你能告诉我更正吗fileInputStream.close()
在最后部分?
配置属性.java
封装底座;
import java.io.FileInputStream;
import java.util.Properties;
public class ConfigProperties {
public FileInputStream fileInputStream;
public String property;
public String getConfigProperties(String strProperty) {
Properties configProperties = new Properties();
try {
fileInputStream = new FileInputStream("resources/config.properties");
configProperties.load(fileInputStream);
property = configProperties.getProperty(strProperty);
System.out.println("getConfigProperties(" + strProperty + ")");
// use a finally block to close your Stream.
// If an exception occurs, do you want the application to shut down?
} catch (Exception ex) {
// TODO
System.out.println("Exception: " + ex);
}
finally {
fileInputStream.close();
}
return property;
}
}
解决方案是否只能按照 Eclipse 的建议并在finally 块中执行此操作?
finally {
try {
fileInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
是的,这是 Java 7 之前的常见解决方案。然而,随着 Java 7 的推出,现在有try-带资源语句将自动关闭任何声明的资源try
阻止退出:
try (FileInputStream fileIn = ...) {
// do something
} // fileIn is closed
catch (IOException e) {
//handle exception
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)