B4J Question jShell - force reading stdOut inputStream


Well-Known Member
Licensed User
Is there a way to force the sh_stdOut to re-read the inputStream in case bytes have arrived since the last read.

If I use Process I can use this construct to ensure I get all the data.
Sub outputToCons
 Dim buf(consOut.BytesAvailable) As Byte
 If consOut.BytesAvailable > 0 Then
  Dim st As String = BytesToString(buf,0,buf.Length,"utf8")
  TextArea1.text = TextArea1.text & st
 End If
 If consOut.BytesAvailable>0 Then outputToCons
End Sub
Just wondered if there was a method within jshell I could use to do the same.


Well-Known Member
Licensed User
I will try and explain.

(trying jshell and directly coding a Process)

I am trying to get the output from a persistent command prompt window (started with /k).
The first data returned from it is ok, the headers for the shell.
But subsequent data returned on _stdOut in response to WriteToInputStream(…) is patchy, I may get the top part or the last few lines, but never the complete response unless it's really short.


Well-Known Member
Licensed User
consOut is the stream from p.getInputStream() ( the process inputstream from the processbuilder)