【问题标题】:named pipes in javajava中的命名管道
【发布时间】:2011-03-02 03:00:44
【问题描述】:

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

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

我在 windows xp SP3 中工作。

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

谢谢, 扬内

【问题讨论】:

    标签: java windows ipc named-pipes


    【解决方案1】:

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

    【讨论】:

    • 如果我写了两个程序就好了。但是,我无法访问写入文件的程序的源代码。我只能指定它写入的文件的位置(必须是文件系统中的有效路径)。不过还是谢谢
    • @M. Jessup 如果你在谈论性能,Pipes 击败了 sockets-over-localhost
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    相关资源
    最近更新 更多