Class ProcessConsumer

java.lang.Object
generic.concurrent.io.ProcessConsumer

public class ProcessConsumer extends Object
A class that allows clients to asynchronously consume the output of a Processs input and error streams. The task is asynchronous to avoid deadlocks when both streams need to be read in order for the process to proceed.
  • Constructor Details

    • ProcessConsumer

      public ProcessConsumer()
  • Method Details

    • consume

      public static Future<IOResult> consume(InputStream is)
      Read the given input stream line-by-line.

      To get all output after all reading is done you can call the blocking operation Future.get().

      Parameters:
      is - the input stream
      Returns:
      the future that will be complete when all lines are read
    • consume

      public static Future<IOResult> consume(InputStream is, Consumer<String> lineConsumer)
      Read the given input stream line-by-line.

      If you wish to get all output after all reading is done you can call the blocking operation Future.get().

      Parameters:
      is - the input stream
      lineConsumer - the line consumer; may be null
      Returns:
      the future that will be complete when all lines are read