Dar*_*McL 2 java try-catch stream java-7
我有一个 try-with-resource 块,它从Blob对象创建一个ObjectInputStream的新实例,例如
try(ObjectInputStream mObjectStream = new ObjectInputStream(mblob.getBinaryStream()))
{
...
}
Run Code Online (Sandbox Code Playgroud)
但是,如果在.getBinaryStream()处抛出异常,则mObjectStream对象可能未被释放,这是我的应用程序的一个问题。
我考虑过将其分开如下
try(InputStream mStream = mblob.getBinaryStream(); ObjectInputStream mObjectStream = new ObjectInputStream(mStream){
...
}
Run Code Online (Sandbox Code Playgroud)
请问如果这会引起问题mObjectStream首次创建或将Mstream工具,总是在这种情况下,第一次创建?
小智 5
try(InputStream mStream = mblob.getBinaryStream();
ObjectInputStream mObjectStream = new ObjectInputStream(mStream))
Run Code Online (Sandbox Code Playgroud)
当您列出并打开多个资源时,它们将按照声明的顺序创建。即首先创建 mStream,然后是 mObjectStream。
此外,它们将以相反的顺序关闭。最新的将首先关闭,然后是旧的。