Как создать файл, используя селектор NIO, другими словами, когда в файл добавляются строки, канал выбирается так, чтобы вы могли читать строки? - PullRequest
0 голосов
/ 25 марта 2012

Поскольку вы не можете перенаправить журналы GC У меня есть возможность перенаправить его в файл с -Xloggc, а затем получить содержимое этого файла в моем селекторе через файловый канал какого-либо типа. В основном, когда строки добавляются в мой файл, селектор запускается, чтобы прочитать их. Таким образом, я могу получить логи GC программно. Можно ли это сделать с помощью NIO?

Ответы [ 2 ]

0 голосов
/ 25 марта 2012

Учитывая, что журналы GC буферизуются, я не буду беспокоиться о некоторой задержке. Вы можете просто периодически опрашивать длину файла и читать данные, добавляемые каждый раз. Вы можете сделать это в IO, NIO или NIO2.

0 голосов
/ 25 марта 2012

Нет. FileChannel не расширяет SelectableChannel, поэтому вы не можете выбирать с ним, и даже в C, где вы можете, select () не доставляет читаемые события при расширении файла (он доставляет их каждый раз, когда вы выбираете, так как файл всегда чтения).

...