내 프로그램에서 /usr/bin/perl -e 'for(my $i=0;$i<1000;$i++){print 1x1000;print STDERR 2x1000;}'
(터미널에서 작동)을 실행하려고합니다.BufferedReader.readline()가 멈 춥니 다
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";
}
실행하려고하면 while ((line = incommandbuf.readLine()) != null)
에 걸립니다. 명령을 /usr/bin/perl -e 'for(my $i=0;$i<64;$i++){print 1x1000;print STDERR 2x1000;}'
으로 변경하면 프로그램이 실행됩니다. 65 이상으로 올라가면 작동하지 않습니다. 처음에는 BufferedReader의 크기를 변경해야한다고 생각했지만 도움이되지 않았습니다. 이것의 원인에 대한 단서가 있습니까? 필요한 경우 추가 정보를 제공 할 것입니다. 감사합니다. .