java - 可以简化标准输出和标准输入通信

标签 java python

我一直在学习java和python之间的进程间通信。

我正在尝试一些新代码,但它没有按预期工作。

在java类中

我有一个打印的方法

Java

public static main void (String[] args)
{
    System.out.println("this is iteration 1");
    System.out.println("this is iteration 2");
    System.out.println("this is iteration 3");
    System.out.println("this is iteration 4");
}

Python

import sys 
while True:
    data = sys.readline()
    print "in python " + data

所需输出

In python : this is iteration 1
In python : this is iteration 2
In python : this is iteration 3
In python : this is iteration 4

电流输出

In python: this is iteration 1this is iteration 2this is iteration 3this is iteration 4
[]
[]
[]
[]

新问题 但是,我的 data = sys.stdin.readline() 没有阻塞。据说,我不知道我的标准输出有多少行。我如何才能允许 stdin.readline() 在第一次迭代后阻塞,因为我找不到刷新标准输入缓冲区的方法。

最佳答案

尝试使用 sys.readline() 而不是 sys.readlines()。前者一次读取一行,后者读取所有可用的内容。

关于java - 可以简化标准输出和标准输入通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311959/

相关文章:

java - java.util.concurrent.locks.ReentrantLock 还是 synchronized block 在 Java 1.7 中哪个更昂贵?

java - 使用 KeyListener 同时接受 2 个键盘输入

python - http.server 直到连接关闭后才响应

python - 有条件地替换 NaN

Python 字符串追加

python - 在 numpy 中加速双循环

java 按用户输入的字符串值对字符串列表进行排序

java - Java HttpsURLConnection的配置

JavaFx 文本字段未在 GUI 上更新

python - python从xml文件中读取数据的方法