code: public static <T> T withReader(InputStream in, @ClosureParams(value=SimpleType.class, options="java.io.Reader") Closure<T> closure) throws IOException {
          return withReader(new InputStreamReader(in), closure);
      }
docs: Helper method to create a new Reader for a stream and then
  passes it into the closure.  The reader (and this stream) is closed after
  the closure returns.
  
  @param in      a stream
  @param closure the closure to invoke with the InputStream
  @return the value returned by the closure
  @throws IOException if an IOException occurs.
  @see java.io.InputStreamReader
  @since 1.5.2