Q
关闭输入/输出流
3
A
回答
7
,当你不收您的视频流,可以发生不好的事情:
- 可以运行出的文件句柄
- 数据,你认为被写入磁盘可能仍然是在缓冲区(只)
- 文件可能仍然被锁定其他进程(取决于平台)
- ...
是的,关闭操作总是刷新流。
操作系统知道的所有文件句柄都已关闭。这意味着FileOutputStream
,FileInputStream
和Socket
的输入/输出将被关闭。但是,如果您将FileOutputStream
包装在BufferedOutputStream
中,那么BufferedOutputStream
将而不是被OS知道,而不会在关闭时被关闭/刷新。因此写入BufferedOutputStream
但尚未刷新到FileOutputStream
的数据可能会丢失。
3
1)您不必要地捆绑系统资源(例如文件描述符)。可能会耗尽他们的程度。
2)是的(虽然你应该检查你感兴趣的特定流的文档以确保)。
3)是
+0
在我工作的前一个人的项目中,没有关闭文件描述符,运行几天后出现了数千个例外:D – Serhiy
1
要进行限定,执行close()时,将刷新数据并关闭文件句柄。如果退出,文件句柄关闭,但未刷新的数据丢失。
相关问题
- 1. Bluetoothchat Android输入/输出流未关闭
- 2. 输入流 - 关闭
- 3. HttpWebResponse输出流不关闭
- 4. PHP:关闭输出流
- 5. DeflateStream关闭输入流
- 6. 确实关闭套接字也将关闭/刷新输入/输出流
- 7. 关闭特定输出流的方法
- 8. 关闭输出流'行为不端'?
- 9. 我应该关闭servlet输出流吗?
- 10. Aptana intermiittent无法关闭输出流
- 11. 我可以关闭servlet中的包装器输入流或输出流类吗?
- 12. 该输入流是否关闭?
- 13. 在Android中关闭输入流(Java)
- 14. Java输入流如何关闭?
- 15. C# - 子进程关闭输入流
- 16. C# - 如何在进程退出时关闭标准输入和输出流?
- 17. 如何关闭输入/输出缓冲区中的输入/输出缓冲区
- 18. C++输入输出流
- 19. 流水线输入/输出
- 20. Java EE输入/输出流
- 21. java输入输出流
- 22. JBoss输入/输出流
- 23. Java ProcessBuilder:输入/输出流
- 24. 输入和输出流
- 25. 输入/输出流Java Servlets
- 26. 标准输入/输出流
- 27. 输出到封闭的流?
- 28. C++连接输出流到输入流
- 29. 输入/输出流:流结束?
- 30. 使用'avserver'流输入到流输出
看到这篇文章,它有类似的问题,一些很好的答案。 http://stackoverflow.com/questions/515975/closing-streams-in-java – Mudassir