java - eclipse 将 stdout 传输到另一个项目

标签 java eclipse stream pipe

我在 eclipse 中有两个项目;

项目 A 不断流式传输(当前到 STDOUT)输出(流式传输的每个新值均以换行符分隔)

项目 B 我想接受这个,并用它做一些事情等等,

我发现做到这一点的唯一方法是写入文件;我宁愿避免这种情况,因为存在大量数据(至少对于我的资源而言),并且其中大部分最终都会被丢弃。

感谢任何建议,谢谢!

最佳答案

有几种方法可以解决这个问题:

  1. 使用 TCP 套接字 - 实现起来并不困难,并且使您能够远程工作(在不同的计算机上运行每个程序)。
  2. 由程序 A 创建分段文件并通过程序 B 使用它们 - 细微差别有点棘手,但如果适合您的需求,总体来说是一种强大的技术
  3. 使用操作系统管道 - 考虑到您当前情况的最简单方法

我将演示选项 3。

程序A.java:

for (int i=0; i<10; i++) {
    System.out.println(i);
}

ProgramB.java:

java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
String input;
while((input=br.readLine())!=null){
    System.out.println("----" + input);
}

之后您可以在命令行执行此操作:

java -cp <program_A_classpath> ProgramA | java -cp <program_B_classpath> ProgramB

输出将是:

----0
----1
----2
----3
----4
----5
----6
----7
----8
----9

关于java - eclipse 将 stdout 传输到另一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19341425/

相关文章:

eclipse - 如何调试JDK源码

java - 在不保持 Eclipse 窗口处于 Activity 状态的情况下自动在 Eclipse 中发布应用程序

java - 保存关闭/打开介绍部分之间的状态

html - 如何使用 axios 向 img html 标签发出视频流 http GET 请求?

android - LG(Android > 2.1)媒体播放器不播放 shoutcast 流

java - 将 JsonString 转换为自定义 java ArrayList

java - 为什么我在 spring 上下文之外得到关闭的 session

java - 如果 siftDown 比 siftUp 更好,为什么我们要它?

node.js - 流文件而不临时保存

java - 在 Java 8 中使用流减少 Bean 列表