在java中命名管道

时间:2010-06-10 11:13:16

标签: java windows ipc named-pipes

我编写了一个java应用程序来操作由另一个程序创建的文件。我希望我的程序能够实时工作,为了做到这一点,我需要从文件中读取而其他程序正在编写它。 简单的解决方案是即使在无限循环中达到EOF时也要继续读取文件,但这非常有效。

更好的解决方案是使用命名管道并配置程序写入该管道(我可以选择程序的输出文件)。我对Windows中的管道一无所知,我也不知道如何在文件系统中创建它们。如果可能的话,我想从我的应用程序(在java中)创建它们,但任何其他方式也都会很好。

我在windows xp SP3中工作。

甚至可以在Windows中使用吗?什么是最好的方式?

感谢, Yannay

1 个答案:

答案 0 :(得分:1)

虽然windows有管道,但它们与* nix下的管道不完全相同(见this wikipedia page),并且Java中没有支持。相反,常见的建议是使用套接字进行进程间通信。虽然我无法提供任何确凿的证据,但是如果您正在运行localhost,这不会产生相对于管道的大量开销,并且如果您以后选择在不同的机器上运行进程,也将允许您的代码更灵活