My Java program is listening on standard input:
InputStreamReader isReader = new InputStreamReader(System.in);
BufferedReader bufReader = new BufferedReader(isReader);
while(true){
try {
String inputStr = null;
if((inputStr=bufReader.readLine()) != null) {
...
}
else {
System.out.println("inputStr is null");
}
}
catch (Exception e) {
...
}
}
Now, I want to pipe input to this program from bash. I tried the following:
echo "hi" | java -classpath ../src test.TestProgram
But it's just printing inputStr is null
infinite times. What am I doing wrong?
Edit 1: Updated question to include more code / context.
Edit 2:
Looks like I'm experiencing the same issue as this OP: Command Line Pipe Input in Java
How can I fix the program so that I can pipe input in for testing, but running the program normally will allow users to enter input on standard input as well?