我编写了一个 Java 应用程序,它可以处理由另一个程序创建的文件。我希望我的程序实时工作,为此,我需要在另一个程序写入文件时读取文件。 简单的解决方案是即使在无限循环中达到 EOF 时也继续从文件读取,但这非常低效。
更好的解决方案是使用命名管道并将程序配置为写入该管道(我可以选择程序的输出文件)。我对 Windows 中的管道一无所知,也不知道如何在文件系统中创建它们。如果可能的话,我想从我的应用程序(在 Java 中)创建它们,但任何其他方式也很好。
我在 windows xp SP3 中工作。
在 Windows 中甚至可以吗?最好的方法是什么?
谢谢, 延奈
最佳答案
虽然 Windows 有管道,但它们与 *nix 下的管道不完全相同(请参阅 this wikipedia page )并且在 Java 中不支持。常见的建议是使用套接字进行进程间通信。虽然我无法提供任何确凿的证据,但如果您通过本地主机运行,与管道相比,这应该不会产生大量开销,并且如果您以后选择在不同机器上运行进程,还可以让您的代码更加灵活.
关于java - java中的命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013811/