如何使用NIO选择器跟踪文件,换句话说,当行被添加到文件中时,会选择一个通道,以便您可以读取行



因为您无法重定向GC日志,所以我只能选择用-Xloggc将其重定向到一个文件,然后通过某种文件通道在选择器中获取该文件的内容。基本上,当行被添加到我的文件中时,选择器被触发来读取它们。这样我就可以通过编程方式获取GC日志。使用NIO可以做到这一点吗?

如果GC日志是缓冲的,我不会担心延迟。您可以定期轮询文件长度,并读取每次添加的数据。您可以在IO、NIO或NIO2中执行此操作。

否。FileChannel没有扩展SelectableChannel,所以你不能用它进行选择,即使在C中,当文件被扩展时,select()也不会提供可读的事件(它在你每次选择时都会提供这些事件,因为文件总是可读的)。

相关内容

最新更新