从java到python写入stdin

从java到python写入stdin,java,python,stdin,Java,Python,Stdin,我在尝试从java编写stdin时遇到了一个问题 下面是我的python代码,它将接收stdin输入 import sys data = sys.stdin.readlines() print data 我试图用java编写到标准输出,但它一直打印到控制台 BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out)); out.write("i am writing to stdin"); out.f

我在尝试从java编写stdin时遇到了一个问题

下面是我的python代码,它将接收stdin输入

import sys 
data = sys.stdin.readlines()
print data 
我试图用java编写到标准输出,但它一直打印到控制台

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
out.write("i am writing to stdin");
out.flush();

但是,它会在java控制台而不是python shell中继续打印。

因此,如果您想将程序stdout重定向到其他程序stdin,通常在从shell调用它们时使用管道。下面是一个示例场景,其中包含执行此操作的代码:

Java端(名为App.Java的文件):

Python端(名为App.py的文件):

然后在外壳上:

首先编译java应用程序:

javac App.java 
然后用管道给他们打电话:

java App | ./App.py
这将导致输出:

['i am writing to stdin']

您是从Python程序启动Java进程还是从其他方式启动Java进程?@Titus有没有一种方法可以让我从Python启动Java进程?是的,您可以使用我对Python了解不多,但快速搜索显示。一旦启动Java进程,就可以获得它的输出流并在Python程序中读取它。
java App | ./App.py
['i am writing to stdin']