有沒有更好的方法來確保資源正確釋放 - 一種更好的方式來編寫下面的代碼?斯卡拉終於阻止關閉/刷新資源
val out: Option[FileOutputStream] = try {
Option(new FileOutputStream(path))
} catch {
case _ => None
}
if (out.isDefined) {
try {
Iterator.continually(in.read).takeWhile(-1 != _).foreach(out.get.write)
} catch {
case e => println(e.getMessage)
} finally {
in.close
out.get.flush()
out.get.close()
}
}
因爲我需要能夠嵌套多個java.lang.AutoCloseable實例,每個實例的取決於先前的一個成功實例化後,我終於遇到了一個對我來說非常有用的模式。我把它寫成類似StackOverflow問題的答案:http://stackoverflow.com/a/34277491/501113 – chaotic3quilibrium 2016-01-22 19:59:48