Poo*_*jan 6 java inputstream playframework
我有一个临时文件,我想从Play Framework中的控制器发送客户端.使用FileInputStream打开连接后可以删除文件吗?例如,我可以这样做 -
File file = getFile();
InputStream is = new FileInputStream(file);
file.delete();
renderBinary(is, "name.txt");
Run Code Online (Sandbox Code Playgroud)
如果文件是大文件怎么办?如果我删除该文件,InputStream上的后续reads()会出错吗?我尝试过大约1MB的文件我没有收到错误.
很抱歉,如果这是一个非常天真的问题,但我找不到与此相关的任何内容,我对Java很新
我刚刚在我被要求处理的一些代码中遇到了完全相同的场景。程序员正在创建一个临时文件,在其上获取输入流,删除临时文件,然后调用 renderBinary。即使对于非常大的文件(甚至是千兆字节),它似乎也能正常工作。
我对此感到惊讶,并且仍在寻找一些说明其工作原理的文档。
更新:我们终于遇到了一个导致这个东西爆炸的文件。我认为它超过了 3 GB。那时,有必要在渲染过程中不要删除该文件。实际上,我最终使用 Amazon Queue 服务对这些文件的消息进行排队。然后通过计划的删除作业检索这些消息。即使在负载均衡器上使用集群服务器,效果也很好。
| 归档时间: |
|
| 查看次数: |
2114 次 |
| 最近记录: |