Я пытаюсь ввести значения, которые запрашивает моя программа simulator.py.Если я пытаюсь закрыть буферизованную программу записи в первое «если», то я получаю Stream Closed ERROR.Если я попытаюсь выполнить сброс, второе значение не будет передано. (Также моя программа на Python запрашивает значение дважды, а затем выводит сообщение каждые 5 секунд).
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Runtime rt = Runtime.getRuntime();
String commands = "python C:\\Users\\Alex\\Desktop\\PythonProjects\\simulator.py";
Process proc = rt.exec(commands);
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
String line = "";
int c;
while ((c = in.read()) != -1) {
line = line + (char) c;
System.out.println(line);
if (line.equals("Please enter your phone (or bot token): ")) {
System.out.println("Enter Phone Number : ");
out.write(readTerminal());
out.newLine();
out.flush(); // Passes the value
//out.close(); // Passes the value
line="";
} else if (line.equals("Please enter the number sent to you : ")) {
System.out.println("Enter Number : ");
out.write(readTerminal()); // line:35
out.newLine();
out.flush(); // Doesnt pass the value in
//out.close(); // java.io.IOException: Stream closed , on line 35
}
}
//out.close();
}
public static String readTerminal() {
Scanner scan = new Scanner(System.in);
return scan.nextLine();
}