2010-06-10 3 views
4

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

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

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

это возможно даже в окнах? и что является лучшим способом?

спасибо, Yannay

ответ

1

В то время как окна имеют трубы они не являются полностью таким же, как под * NIX (см this wikipedia page) и нет никакой поддержки в Java. Общее предложение - вместо этого использовать сокет для межпроцессного взаимодействия. Хотя я не могу представить никаких убедительных доказательств, если вы используете локальный хост, это не должно создавать значительного количества накладных расходов по сравнению с трубой, а также позволит вашему коду быть более гибким, если вы позже захотите запустить процессы на разных машинах ,

+0

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

+0

@M. Jessup Если вы говорите о производительности, Pipes бил сокеты поверх локального хоста – Pacerier

Смежные вопросы