在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/

10-13 04:39