У меня есть эта проблема, с которой я недавно наткнулся.
Я использую ProcessBuilder
для вызова внешнего процесса. Процесс может возвращать либо удобочитаемую строку, либо сжатый контент.
код выглядит следующим образом:
Предоставление потребителям InputStream от ProcessBuilder
ProcessBuilder pb = new ProcessBuilder(args);
pb.redirectErrorStream(true);
Process p = pb.start();
p.waitFor();
return p.getInputStream();
Это нормально для небольшого входа, но для больших одного процесса блоков, ожидающих буфера опорожнить. Потребительский код уже реализован, так есть ли другой способ извлечения из этой функции InputStream
?