java - java中的命名管道

标签 java windows ipc named-pipes

我编写了一个 Java 应用程序,它可以处理由另一个程序创建的文件。我希望我的程序实时工作,为此,我需要在另一个程序写入文件时读取文件。 简单的解决方案是即使在无限循环中达到 EOF 时也继续从文件读取,但这非常低效。

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

我在 windows xp SP3 中工作。

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

谢谢, 延奈

最佳答案

虽然 Windows 有管道,但它们与 *nix 下的管道不完全相同(请参阅 this wikipedia page )并且在 Java 中不支持。常见的建议是使用套接字进行进程间通信。虽然我无法提供任何确凿的证据,但如果您通过本地主机运行,与管道相比,这应该不会产生大量开销,并且如果您以后选择在不同机器上运行进程,还可以让您的代码更加灵活.

关于java - java中的命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013811/

相关文章:

windows - DirectShow 图形中的视频延迟

windows - 编译 GCC 7 : error: C++ preprocessor "/lib/cpp" fails sanity check

language-agnostic - Windows和Linux中管道之间有何区别?

c++ - 如何在 2 个进程之间共享 COM 对象?

c - Mach 信号量是否在进程之间的共享内存中工作?

java - 如何记录 Jasper 报告(Log4j2.xml 配置)以进行调试?

java - 将 jvm 参数传递给 Gradle 测试任务

windows - Dos 目录掩码,需要 "*.xxx"而不是 "*.xxxzz"

java - 使用流通过自定义比较器收集到 TreeSet

java - 安卓应用程序 : Managing an expired SSL certificate?