именованные каналы в Java - PullRequest
4 голосов
/ 10 июня 2010

Я написал приложение Java, которое манипулирует файлом, созданным другой программой. я хочу, чтобы моя программа работала в режиме реального времени, для этого мне нужно прочитать файл, пока другая программа его пишет. простое решение - продолжать чтение из файла, даже если EOF достигнут бесконечным циклом, но это очень неэффективно.

лучшее решение - использовать именованный канал и настроить программу для записи в этот канал (я могу выбрать выходной файл программы). Я ничего не знаю о каналах в Windows, и я не знаю, как создать их в файловой системе. если возможно, я хотел бы создать их из своего приложения (в Java), но любой другой способ будет также хорош.

Я работаю в Windows XP SP3.

это вообще возможно в windows? а какой самый лучший способ?

спасибо, Yannay

1 Ответ

1 голос
/ 10 июня 2010

Хотя в Windows есть каналы, они не совсем такие же, как в * nix (см. на этой странице википедии ), и в Java нет поддержки. Обычно вместо этого используется сокет для межпроцессного взаимодействия. Хотя я не могу предоставить каких-либо веских доказательств, если вы работаете через localhost, это не должно создавать значительного объема служебных данных по сравнению с конвейером, а также позволит вашему коду быть более гибким, если вы позже решите запустить процессы на разных машинах .

...