InputStream (Groovy JDK enhancements)

Package: java.io

## Class InputStream

- - ### Methods Summary

    Methods
    Return type | Name and parameters
    --- | ---
    `void` | `eachByte(Closure closure)` Traverse through each byte of the specified stream.
    `void` | `eachByte(int bufferLen, Closure closure)` Traverse through each the specified stream reading bytes into a buffer and calling the 2 parameter closure with this buffer and the number of bytes.
    `Object` | `eachLine(Closure closure)` Iterates through this stream, passing each line to the given 1 or 2 arg closure.
    `Object` | `eachLine(int firstLine, Closure closure)` Iterates through this stream, passing each line to the given 1 or 2 arg closure.
    `Object` | `eachLine(String charset, Closure closure)` Iterates through this stream reading with the provided charset, passing each line to the given 1 or 2 arg closure.
    `Object` | `eachLine(String charset, int firstLine, Closure closure)` Iterates through this stream reading with the provided charset, passing each line to the given 1 or 2 arg closure.
    `Writable` | `filterLine(Closure predicate)` Filter lines from an input stream using a closure predicate.
    `void` | `filterLine(Writer writer, Closure predicate)` Uses a closure to filter lines from this InputStream and pass them to the given writer.
    `void` | `filterLine(Writer writer, String charset, Closure predicate)` Uses a closure to filter lines from this InputStream and pass them to the given writer.
    `Writable` | `filterLine(String charset, Closure predicate)` Filter lines from an input stream using a closure predicate.
    `byte[]` | `getBytes()` Read the content of this InputStream and return it as a byte[].
    `String` | `getText()` Read the content of this InputStream and return it as a String.
    `String` | `getText(String charset)` Read the content of this InputStream using specified charset and return it as a String.
    `Iterator` | `iterator()` Standard iterator for an input stream which iterates through the stream content in a byte-based fashion.
    `ObjectInputStream` | `newObjectInputStream()` Create an object input stream for this input stream.
    `ObjectInputStream` | `newObjectInputStream(ClassLoader classLoader)` Create an object input stream for this input stream using the given class loader.
    `BufferedReader` | `newReader()` Creates a reader for this input stream.
    `BufferedReader` | `newReader(String charset)` Creates a reader for this input stream, using the specified charset as the encoding.
    `List` | `readLines()` Reads the stream into a list, with one element for each line.
    `List` | `readLines(String charset)` Reads the stream into a list, with one element for each line.
    `Object` | `splitEachLine(String regex, Closure closure)` Iterates through the given InputStream line by line, splitting each line using the given separator.
    `Object` | `splitEachLine(String regex, String charset, Closure closure)` Iterates through the given InputStream line by line using the specified encoding, splitting each line using the given separator.
    `Object` | `splitEachLine(Pattern pattern, Closure closure)` Iterates through the given InputStream line by line, splitting each line using the given separator Pattern.
    `Object` | `splitEachLine(Pattern pattern, String charset, Closure closure)` Iterates through the given InputStream line by line using the specified encoding, splitting each line using the given separator Pattern.
    `Object` | `withObjectInputStream(Closure closure)` Create a new ObjectInputStream for this input stream and pass it to the closure.
    `Object` | `withObjectInputStream(ClassLoader classLoader, Closure closure)` Create a new ObjectInputStream for this input stream and pass it to the closure.
    `Object` | `withReader(Closure closure)` Helper method to create a new Reader for a stream and then passes it into the closure.
    `Object` | `withReader(String charset, Closure closure)` Helper method to create a new Reader for a stream and then passes it into the closure.

  - #### Methods inherited from class java.lang.Object

    `addShutdownHook`, `any`, `any`, `asBoolean`, `asType`, `collect`, `collect`, `collect`, `dump`, `each`, `eachMatch`, `eachMatch`, `eachWithIndex`, `every`, `every`, `find`, `find`, `findAll`, `findAll`, `findIndexOf`, `findIndexOf`, `findIndexValues`, `findIndexValues`, `findLastIndexOf`, `findLastIndexOf`, `findResult`, `findResult`, `findResult`, `findResult`, `getAt`, `getMetaClass`, `getMetaPropertyValues`, `getProperties`, `grep`, `grep`, `hasProperty`, `identity`, `inject`, `inject`, `inspect`, `invokeMethod`, `is`, `isCase`, `isNotCase`, `iterator`, `metaClass`, `print`, `print`, `printf`, `printf`, `println`, `println`, `println`, `putAt`, `respondsTo`, `respondsTo`, `setMetaClass`, `split`, `sprintf`, `sprintf`, `stream`, `tap`, `toString`, `use`, `use`, `use`, `with`, `with`, `withCloseable`, `withStream`, `withTraits`

- - ### Methods Detail

    - #### public void eachByte(Closure closure)

      Traverse through each byte of the specified stream. The stream is closed after the closure returns.

      Parameters:
        `closure` - closure to apply to each byte
      Since:
        1.0

    - #### public void eachByte(int bufferLen, Closure closure)

      Traverse through each the specified stream reading bytes into a buffer and calling the 2 parameter closure with this buffer and the number of bytes.

      Parameters:
        `bufferLen` - the length of the buffer to use.
        `closure` - a 2 parameter closure which is passed the byte[] and a number of bytes successfully read.
      Since:
        1.8

    - #### public Object eachLine(Closure closure)

      Iterates through this stream, passing each line to the given 1 or 2 arg closure. The stream is closed before this method returns.

      Parameters:
        `closure` - a closure (arg 1 is line, optional arg 2 is line number starting at line 1)
      Returns:
        the last value returned by the closure
      Since:
        1.5.6
      See Also:
        InputStream#eachLine(int, groovy.lang.Closure)

    - #### public Object eachLine(int firstLine, Closure closure)

      Iterates through this stream, passing each line to the given 1 or 2 arg closure. The stream is closed before this method returns.

      Parameters:
        `firstLine` - the line number value used for the first line (default is 1, set to 0 to start counting from 0)
        `closure` - a closure (arg 1 is line, optional arg 2 is line number)
      Returns:
        the last value returned by the closure
      Since:
        1.5.7
      See Also:
        Reader#eachLine(int, groovy.lang.Closure)

    - #### public Object eachLine(String charset, Closure closure)

      Iterates through this stream reading with the provided charset, passing each line to the given 1 or 2 arg closure. The stream is closed before this method returns.

      Parameters:
        `charset` - opens the stream with a specified charset
        `closure` - a closure (arg 1 is line, optional arg 2 is line number starting at line 1)
      Returns:
        the last value returned by the closure
      Since:
        1.5.5
      See Also:
        InputStream#eachLine(java.lang.String, int, groovy.lang.Closure)

    - #### public Object eachLine(String charset, int firstLine, Closure closure)

      Iterates through this stream reading with the provided charset, passing each line to the given 1 or 2 arg closure. The stream is closed after this method returns.

      Parameters:
        `charset` - opens the stream with a specified charset
        `firstLine` - the line number value used for the first line (default is 1, set to 0 to start counting from 0)
        `closure` - a closure (arg 1 is line, optional arg 2 is line number)
      Returns:
        the last value returned by the closure
      Since:
        1.5.7
      See Also:
        Reader#eachLine(int, groovy.lang.Closure)

    - #### public Writable filterLine(Closure predicate)

      Filter lines from an input stream using a closure predicate. The closure will be passed each line as a String, and it should return `true` if the line should be passed to the writer.

      Parameters:
        `predicate` - a closure which returns boolean and takes a line
      Returns:
        a writable which writes out the filtered lines
      Since:
        1.0
      See Also:
        Reader#filterLine(groovy.lang.Closure)

    - #### public void filterLine(Writer writer, Closure predicate)

      Uses a closure to filter lines from this InputStream and pass them to the given writer. The closure will be passed each line as a String, and it should return `true` if the line should be passed to the writer.

      Parameters:
        `writer` - a writer to write output to
        `predicate` - a closure which returns true if a line should be accepted
      Since:
        1.0
      See Also:
        Reader#filterLine(java.io.Writer, groovy.lang.Closure)

    - #### public void filterLine(Writer writer, String charset, Closure predicate)

      Uses a closure to filter lines from this InputStream and pass them to the given writer. The closure will be passed each line as a String, and it should return `true` if the line should be passed to the writer.

      Parameters:
        `writer` - a writer to write output to
        `charset` - opens the stream with a specified charset
        `predicate` - a closure which returns true if a line should be accepted
      Since:
        1.6.8
      See Also:
        Reader#filterLine(java.io.Writer, groovy.lang.Closure)

    - #### public Writable filterLine(String charset, Closure predicate)

      Filter lines from an input stream using a closure predicate. The closure will be passed each line as a String, and it should return `true` if the line should be passed to the writer.

      Parameters:
        `charset` - opens the stream with a specified charset
        `predicate` - a closure which returns boolean and takes a line
      Returns:
        a writable which writes out the filtered lines
      Since:
        1.6.8
      See Also:
        Reader#filterLine(groovy.lang.Closure)

    - #### public byte[] getBytes()

      Read the content of this InputStream and return it as a byte[]. The stream is closed before this method returns.

      Returns:
        the byte[] from that InputStream
      Since:
        1.7.1

    - #### public String getText()

      Read the content of this InputStream and return it as a String. The stream is closed before this method returns.

      Returns:
        the text from that URL
      Since:
        1.0

    - #### public String getText(String charset)

      Read the content of this InputStream using specified charset and return it as a String. The stream is closed before this method returns.

      Parameters:
        `charset` - opens the stream with a specified charset
      Returns:
        the text from that URL
      Since:
        1.0

    - #### public Iterator iterator()

      Standard iterator for an input stream which iterates through the stream content in a byte-based fashion.

      Returns:
        an Iterator for the InputStream
      Since:
        1.5.0

    - #### public ObjectInputStream newObjectInputStream()

      Create an object input stream for this input stream.

      Returns:
        an object input stream
      Since:
        1.5.0

    - #### public ObjectInputStream newObjectInputStream(ClassLoader classLoader)

      Create an object input stream for this input stream using the given class loader.

      Parameters:
        `classLoader` - the class loader to use when loading the class
      Returns:
        an object input stream
      Since:
        1.5.0

    - #### public BufferedReader newReader()

      Creates a reader for this input stream.

      Returns:
        a reader
      Since:
        1.0

    - #### public BufferedReader newReader(String charset)

      Creates a reader for this input stream, using the specified charset as the encoding.

      Parameters:
        `charset` - the charset for this input stream
      Returns:
        a reader
      Since:
        1.6.0

    - #### public List readLines()

      Reads the stream into a list, with one element for each line.

      Returns:
        a List of lines
      Since:
        1.0
      See Also:
        Reader#readLines()

    - #### public List readLines(String charset)

      Reads the stream into a list, with one element for each line.

      Parameters:
        `charset` - opens the stream with a specified charset
      Returns:
        a List of lines
      Since:
        1.6.8
      See Also:
        Reader#readLines()

    - #### public Object splitEachLine(String regex, Closure closure)

      Iterates through the given InputStream line by line, splitting each line using the given separator. The list of tokens for each line is then passed to the given closure. The stream is closed before the method returns.

      Parameters:
        `regex` - the delimiting regular expression
        `closure` - a closure
      Returns:
        the last value returned by the closure
      Since:
        1.5.6
      See Also:
        Reader#splitEachLine(java.lang.String, groovy.lang.Closure)

    - #### public Object splitEachLine(String regex, String charset, Closure closure)

      Iterates through the given InputStream line by line using the specified encoding, splitting each line using the given separator. The list of tokens for each line is then passed to the given closure. Finally, the stream is closed.

      Parameters:
        `regex` - the delimiting regular expression
        `charset` - opens the stream with a specified charset
        `closure` - a closure
      Returns:
        the last value returned by the closure
      Since:
        1.5.5
      See Also:
        Reader#splitEachLine(java.lang.String, groovy.lang.Closure)

    - #### public Object splitEachLine(Pattern pattern, Closure closure)

      Iterates through the given InputStream line by line, splitting each line using the given separator Pattern. The list of tokens for each line is then passed to the given closure. The stream is closed before the method returns.

      Parameters:
        `pattern` - the regular expression Pattern for the delimiter
        `closure` - a closure
      Returns:
        the last value returned by the closure
      Since:
        1.6.8
      See Also:
        Reader#splitEachLine(java.util.regex.Pattern, groovy.lang.Closure)

    - #### public Object splitEachLine(Pattern pattern, String charset, Closure closure)

      Iterates through the given InputStream line by line using the specified encoding, splitting each line using the given separator Pattern. The list of tokens for each line is then passed to the given closure. Finally, the stream is closed.

      Parameters:
        `pattern` - the regular expression Pattern for the delimiter
        `charset` - opens the stream with a specified charset
        `closure` - a closure
      Returns:
        the last value returned by the closure
      Since:
        1.6.8
      See Also:
        Reader#splitEachLine(java.util.regex.Pattern, groovy.lang.Closure)

    - #### public Object withObjectInputStream(Closure closure)

      Create a new ObjectInputStream for this input stream and pass it to the closure. This method ensures the stream is closed after the closure returns.

      Parameters:
        `closure` - a closure
      Returns:
        the value returned by the closure
      Since:
        1.5.0
      See Also:
        InputStream#withStream(groovy.lang.Closure)

    - #### public Object withObjectInputStream(ClassLoader classLoader, Closure closure)

      Create a new ObjectInputStream for this input stream and pass it to the closure. This method ensures the stream is closed after the closure returns.

      Parameters:
        `classLoader` - the class loader to use when loading the class
        `closure` - a closure
      Returns:
        the value returned by the closure
      Since:
        1.5.0
      See Also:
        InputStream#withStream(groovy.lang.Closure)

    - #### public Object withReader(Closure closure)

      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.

      Parameters:
        `closure` - the closure to invoke with the InputStream
      Returns:
        the value returned by the closure
      Since:
        1.5.2
      See Also:
        InputStreamReader

    - #### public Object withReader(String charset, Closure closure)

      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.

      Parameters:
        `charset` - the charset used to decode the stream
        `closure` - the closure to invoke with the reader
      Returns:
        the value returned by the closure
      Since:
        1.5.6
      See Also:
        InputStreamReader