在java中命名pipe道

我已经写了一个Java应用程序操纵由另一个程序创build的文件。 我希望我的程序能够实时工作,为了做到这一点,我需要在其他程序正在写入的同时从文件中读取数据。 简单的解决scheme是即使在无限循环中已经达到EOF时仍然从文件中读取文件,但这是非常无效的。

更好的解决scheme是使用命名pipe道,并configuration程序写入该pipe道(我可以select程序的输出文件)。 我对Windows中的pipe道一无所知,我不知道如何在文件系统中创build它们。 如果可能的话,我想创build他们从我的应用程序(在Java中),但任何其他方式也将是好的。

我在Windows XP SP3中工作。

它甚至可能在Windows? 什么是最好的方法?

谢谢,Yannay

虽然windows有管道,但它们不完全和* nix中的那些管道相同(参见这个维基百科页面 ),并且在Java中没有支持。 常见的建议是使用套接字进行进程间通信。 虽然我不能提供任何确凿的证据,但如果您正在运行本地主机,则不会产生相对于管道的大量开销,并且如果您稍后选择在不同的计算机上运行进程,还将使您的代码更加灵活。