Java 最终确定者,关闭文件和流
在Joshua Bloch的书《有效Java》第7项第二版中,他建议避免使用finally语句,尤其是在关闭文件时,他说“依赖最终定稿人关闭文件是一个严重错误”。两页之后,他说,它是合法的两个用例之一是显式终止方法模式Java 最终确定者,关闭文件和流,java,effective-java,Java,Effective Java,在Joshua Bloch的书《有效Java》第7项第二版中,他建议避免使用finally语句,尤其是在关闭文件时,他说“依赖最终定稿人关闭文件是一个严重错误”。两页之后,他说,它是合法的两个用例之一是显式终止方法模式 Foo foo = new Foo(); try{ ///process foo } finally{ foo.terminate(); } 具有终止方法的类包括FileInputStream和FileOutputStream。那么这不意味着在finally语句
Foo foo = new Foo();
try{
///process foo
} finally{
foo.terminate();
}
具有终止方法的类包括FileInputStream和FileOutputStream。那么这不意味着在finally语句中关闭一个文件吗
1) 约书亚·布洛赫的第7项是矛盾的吗
2) 是否需要终止方法模式?你不能在没有finally语句的情况下编写上面的代码吗?我想作者的意思是你应该在
try catch
中使用finally
块代码(这不是终结器)来关闭/清理资源,而不是释放finalize
方法(这是终结器)
有关终结器的更多信息,请查看终结器!=最后,
InputStream
没有终止方法。可能您指的是Closeable
接口中的close()
方法。