Java BufferedReader.readline()挂起
我正在尝试为(my$I=0;$I运行Java BufferedReader.readline()挂起,java,linux,bufferedreader,Java,Linux,Bufferedreader,我正在尝试为(my$I=0;$I运行/usr/bin/perl-e'。您一次读取一个流。当另一个流填满缓冲区时,您的进程将停止等待您读取。解决方案是在不同的线程中读取流或使用 ProcessBuilder pb = new ProcessBuilder(go); //go is the command process = pb.start(); BufferedReader incommandbuf = new BufferedReader(new InputStreamReader(proce
/usr/bin/perl-e'。您一次读取一个流。当另一个流填满缓冲区时,您的进程将停止等待您读取。解决方案是在不同的线程中读取流或使用
ProcessBuilder pb = new ProcessBuilder(go); //go is the command
process = pb.start();
BufferedReader incommandbuf = new BufferedReader(new InputStreamReader(process.getInputStream()),1024*1000);
BufferedReader errcommandbuf = new BufferedReader(new InputStreamReader(process.getErrorStream()),1024*1000);
stdString = "";
while ((line = incommandbuf.readLine()) != null)
{
stdString += line + "\n";
}
String errorstrtemp = "";
while ((line = errcommandbuf.readLine()) != null)
{
errorstrtemp += line + "\n";
}