在Play框架中,有一个名为renderBinary
的渲染方法,可以在其中渲染InputStream
。
据我了解,在renderBinary()方法调用之后没有代码运行,那么如何关闭InputStream
?
请看以下示例:
FileInputStream inputStream = null;
try{
//create temp file
File tempFile = File.createTempFile( "foobar", ".txt" );
inputStream = new FileInputStream( tempFile );
//delete temp file
tempFile.delete();
//download the file as held in the inputstream
renderBinary( inputStream, foobar + ".txt" );
}
catch( Exception e ){
throw e;
}
finally {
if( inputStream != null )
inputStream.close();
}
这是关闭
InputStream
的合适方法还是永远不会调用finally
?我知道会有一个“尝试一下然后看”的答案,我已经尝试过了,当我反复快速下载大文件时我没有出现“内存不足”错误-但是我不知道该怎么办关于检查
InputStream
是否已实际关闭。 最佳答案
您可以检查该类的source code那个代码,它已关闭。我真的建议下载源并将其链接到您的项目,Play在幕后做了一些“魔术”,很高兴看到:)
关于java - 在Play框架中调用renderBinary()后关闭InputStream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6693412/