我的问题是监视java中的打开文件句柄并独立于OS的类型(Linux,Windows等)
我的应用程序是一个使用tomcat和Java8运行的基于Web的服务器应用程序。
对于可能的解决方案,只考虑Java语言本身以及 Guava 和 Apache Commons ,因为我的公司不允许使用任何其他第三方图书馆。
有关如何做到这一点的任何建议?我已经考虑过继承InputStream
并在其open()
和close()
方法中注入一些内容,但这并不是我认为的“好”解决方案......
我非常感谢你的帮助!
答案 0 :(得分:0)
您不喜欢的解决方案似乎是最好的解决方案,只要您打开或关闭文件,就可以通过EventBus(在Guava中使用它)发出消息。您的ManagedFileInputStream
只需致电enventBus.post(someFilePointer)
和super.open()
或super.close()
但是你的应用程序可以打开许多其他文件(jar文件,css等网络资源,图像,脚本,tomcat创建的临时文件,JVM创建的临时文件)。
我认为没有合理的方法来监视java应用程序中java应用程序打开的所有文件,也许这是操作系统要管理的东西。