gpt4 book ai didi

java - 在 Play Framework 中调用 renderBinary() 后关闭 InputStream

转载 作者:行者123 更新时间:2023-11-30 07:32:15 26 4
gpt4 key购买 nike

在 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 implements 类的那个代码,它是关闭的。我真的建议下载源代码并将其链接到您的项目,Play 在幕后做了一些“魔术”,这很值得一看 :)

关于java - 在 Play Framework 中调用 renderBinary() 后关闭 InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com