监视Java中的打开文件句柄 - 独立于操作系统

时间:2017-02-28 11:21:35

标签: java io inputstream monitoring filehandle

我的问题是监视java中的打开文件句柄并独立于OS的类型(Linux,Windows等)

我的应用程序是一个使用tomcat和Java8运行的基于Web的服务器应用程序。

对于可能的解决方案,只考虑Java语言本身以及 Guava Apache Commons ,因为我的公司不允许使用任何其他第三方图书馆。

有关如何做到这一点的任何建议?我已经考虑过继承InputStream并在其open()close()方法中注入一些内容,但这并不是我认为的“好”解决方案......

我非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您不喜欢的解决方案似乎是最好的解决方案,只要您打开或关闭文件,就可以通过EventBus(在Guava中使用它)发出消息。您的ManagedFileInputStream只需致电enventBus.post(someFilePointer)super.open()super.close()

但是你的应用程序可以打开许多其他文件(jar文件,css等网络资源,图像,脚本,tomcat创建的临时文件,JVM创建的临时文件)。

我认为没有合理的方法来监视java应用程序中java应用程序打开的所有文件,也许这是操作系统要管理的东西。