Class IOGroovyMethods
public static T eachLine(InputStream self, Closure c)
provides a eachLine(Closure c)
method for InputStream
.
NOTE: While this class contains many 'public' static methods, it is primarily regarded as an internal class (its internal package name suggests this also). We value backwards compatibility of these methods when used within Groovy but value less backwards compatibility at the Java method call level. I.e. future versions of Groovy may remove or move a method call in this file but would normally aim to keep the method available from within Groovy.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
eachByte
(InputStream is, 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.static void
eachByte
(InputStream is, Closure closure) Traverse through each byte of the specified stream.static <T> T
eachLine
(InputStream stream, int firstLine, Closure<T> closure) Iterates through this stream, passing each line to the given 1 or 2 arg closure.static <T> T
eachLine
(InputStream stream, Closure<T> closure) Iterates through this stream, passing each line to the given 1 or 2 arg closure.static <T> T
eachLine
(InputStream stream, String charset, int firstLine, Closure<T> closure) Iterates through this stream reading with the provided charset, passing each line to the given 1 or 2 arg closure.static <T> T
eachLine
(InputStream stream, String charset, Closure<T> closure) Iterates through this stream reading with the provided charset, passing each line to the given 1 or 2 arg closure.static <T> T
Iterates through the given reader line by line.static <T> T
Iterates through the given reader line by line.static void
eachObject
(ObjectInputStream ois, Closure closure) Iterates through the given object stream object by object.static Writable
filterLine
(InputStream self, Closure predicate) Filter lines from an input stream using a closure predicate.static void
filterLine
(InputStream self, Writer writer, Closure predicate) Uses a closure to filter lines from this InputStream and pass them to the given writer.static void
filterLine
(InputStream self, Writer writer, String charset, Closure predicate) Uses a closure to filter lines from this InputStream and pass them to the given writer.static Writable
filterLine
(InputStream self, String charset, Closure predicate) Filter lines from an input stream using a closure predicate.static Writable
filterLine
(Reader reader, Closure closure) Filter the lines from this Reader, and return a Writable which can be used to stream the filtered lines to a destination.static void
filterLine
(Reader reader, Writer writer, Closure closure) Filter the lines from a reader and write them on the writer, according to a closure which returns true if the line should be included.static byte[]
getBytes
(InputStream is) Read the content of this InputStream and return it as a byte[].static String
getText
(BufferedReader reader) Read the content of the BufferedReader and return it as a String.static String
getText
(InputStream is) Read the content of this InputStream and return it as a String.static String
getText
(InputStream is, String charset) Read the content of this InputStream using specified charset and return it as a String.static String
Read the content of the Reader and return it as a String.iterator
(DataInputStream self) Standard iterator for a data input stream which iterates through the stream content a Byte at a time.iterator
(InputStream self) Standard iterator for an input stream which iterates through the stream content in a byte-based fashion.Creates an iterator which will traverse through the reader a line at a time.static void
leftShift
(ObjectOutputStream self, Object value) Overloads the leftShift operator to add objects to an ObjectOutputStream.static OutputStream
leftShift
(OutputStream self, byte[] value) Overloads the leftShift operator to provide an append mechanism to add bytes to a stream.static OutputStream
leftShift
(OutputStream self, InputStream in) Pipe an InputStream into an OutputStream for efficient stream copying.static Writer
leftShift
(OutputStream self, Object value) Overloads the leftShift operator to provide an append mechanism to add values to a stream.static Writer
Overloads the leftShift operator for Writer to allow an object to be written using Groovy's default representation for the object.static Appendable
leftShift
(Appendable self, Object value) Overloads the leftShift operator for Appendable to allow an object to be appended using Groovy's default representation for the object.static ObjectInputStream
newObjectInputStream
(InputStream inputStream) Create an object input stream for this input stream.static ObjectInputStream
newObjectInputStream
(InputStream inputStream, ClassLoader classLoader) Create an object input stream for this input stream using the given class loader.static ObjectOutputStream
newObjectOutputStream
(OutputStream outputStream) Create an object output stream for this output stream.static PrintWriter
newPrintWriter
(OutputStream stream) Create a new PrintWriter for this OutputStream.static PrintWriter
newPrintWriter
(Writer writer) Create a new PrintWriter for this Writer.static BufferedReader
newReader
(InputStream self) Creates a reader for this input stream.static BufferedReader
newReader
(InputStream self, String charset) Creates a reader for this input stream, using the specified charset as the encoding.static Writer
newWriter
(OutputStream stream) Creates a writer for this stream.static Writer
newWriter
(OutputStream stream, String charset) Creates a writer for this stream using the given charset.static String
Read a single, whole line from the given Reader.readLines
(InputStream stream) Reads the stream into a list, with one element for each line.readLines
(InputStream stream, String charset) Reads the stream into a list, with one element for each line.Reads the reader into a list of Strings, with one entry for each line.static void
setBytes
(OutputStream os, byte[] bytes) Write the byte[] to the output stream.static <T> T
splitEachLine
(InputStream stream, String regex, Closure<T> closure) Iterates through the given InputStream line by line, splitting each line using the given separator.static <T> T
splitEachLine
(InputStream stream, String regex, String charset, Closure<T> closure) Iterates through the given InputStream line by line using the specified encoding, splitting each line using the given separator.static <T> T
splitEachLine
(InputStream stream, Pattern pattern, Closure<T> closure) Iterates through the given InputStream line by line, splitting each line using the given separator Pattern.static <T> T
splitEachLine
(InputStream stream, Pattern pattern, String charset, Closure<T> closure) Iterates through the given InputStream line by line using the specified encoding, splitting each line using the given separator Pattern.static <T> T
splitEachLine
(Reader self, String regex, Closure<T> closure) Iterates through the given reader line by line, splitting each line using the given regex separator.static <T> T
splitEachLine
(Reader self, Pattern pattern, Closure<T> closure) Iterates through the given reader line by line, splitting each line using the given regex separator Pattern.static void
transformChar
(Reader self, Writer writer, Closure closure) Transforms each character from this reader by passing it to the given closure.static void
transformLine
(Reader reader, Writer writer, Closure closure) Transforms the lines from a reader with a Closure and write them to a writer.static <T,
U extends Closeable>
TwithCloseable
(U self, Closure<T> action) Allows this closeable to be used within the closure, ensuring that it is closed once the closure has been executed and before this method returns.static Appendable
withFormatter
(Appendable self, Closure closure) Invokes a Closure that uses a Formatter taking care of resource handling.static Appendable
withFormatter
(Appendable self, Locale locale, Closure closure) Invokes a Closure that uses a Formatter taking care of resource handling.static <T> T
withObjectInputStream
(InputStream inputStream, Closure<T> closure) Create a new ObjectInputStream for this input stream and pass it to the closure.static <T> T
withObjectInputStream
(InputStream inputStream, ClassLoader classLoader, Closure<T> closure) Create a new ObjectInputStream for this input stream and pass it to the closure.static <T> T
withObjectOutputStream
(OutputStream outputStream, Closure<T> closure) Create a new ObjectOutputStream for this output stream and then pass it to the closure.static <T> T
withPrintWriter
(OutputStream stream, Closure<T> closure) Create a new PrintWriter for this OutputStream.static <T> T
withPrintWriter
(Writer writer, Closure<T> closure) Create a new PrintWriter for this Writer.static <T> T
withReader
(InputStream in, Closure<T> closure) Helper method to create a new Reader for a stream and then passes it into the closure.static <T> T
withReader
(InputStream in, String charset, Closure<T> closure) Helper method to create a new Reader for a stream and then passes it into the closure.static <T> T
withReader
(Reader reader, Closure<T> closure) Allows this reader to be used within the closure, ensuring that it is closed before this method returns.static <T,
U extends InputStream>
TwithStream
(U stream, Closure<T> closure) Allows this input stream to be used within the closure, ensuring that it is flushed and closed before this method returns.static <T> T
withWriter
(OutputStream stream, Closure<T> closure) Creates a writer from this stream, passing it to the given closure.static <T> T
withWriter
(OutputStream stream, String charset, Closure<T> closure) Creates a writer from this stream, passing it to the given closure.static <T> T
withWriter
(Writer writer, Closure<T> closure) Allows this writer to be used within the closure, ensuring that it is flushed and closed before this method returns.static void
A helper method so that dynamic dispatch of the writer.write(object) method will always use the more efficient Writable.writeTo(writer) mechanism if the object implements the Writable interface.static void
writeLine
(BufferedWriter writer, String line) Write the text and append a newline (using the platform's line-ending).Methods inherited from class org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport
cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarQueue, createSimilarSet, normaliseIndex, sameType, sameType, subListBorders, subListBorders, subListRange, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired
-
Constructor Details
-
IOGroovyMethods
public IOGroovyMethods()
-
-
Method Details
-
leftShift
Overloads the leftShift operator for Writer to allow an object to be written using Groovy's default representation for the object.- Parameters:
self
- a Writervalue
- an Object whose default representation will be written to the Writer- Returns:
- the writer on which this operation was invoked
- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.0
-
leftShift
Overloads the leftShift operator for Appendable to allow an object to be appended using Groovy's default representation for the object.- Parameters:
self
- an Appendablevalue
- an Object whose default representation will be appended to the Appendable- Returns:
- the Appendable on which this operation was invoked
- Throws:
IOException
- if an I/O error occurs.- Since:
- 2.1.0
-
withFormatter
public static Appendable withFormatter(Appendable self, @ClosureParams(value=SimpleType.class,options="java.util.Formatter") Closure closure) Invokes a Closure that uses a Formatter taking care of resource handling. A Formatter is created and passed to the Closure as its argument. After the Closure executes, the Formatter is flushed and closed releasing any associated resources.- Parameters:
self
- an Appendableclosure
- a 1-arg Closure which will be called with a Formatter as its argument- Returns:
- the Appendable on which this operation was invoked
- Since:
- 2.1.0
-
withFormatter
public static Appendable withFormatter(Appendable self, Locale locale, @ClosureParams(value=SimpleType.class,options="java.util.Formatter") Closure closure) Invokes a Closure that uses a Formatter taking care of resource handling. A Formatter is created using the given Locale and passed to the Closure as its argument. After the Closure executes, the Formatter is flushed and closed releasing any associated resources.- Parameters:
self
- an Appendablelocale
- a Locale used when creating the Formatterclosure
- a 1-arg Closure which will be called with a Formatter as its argument- Returns:
- the Appendable on which this operation was invoked
- Since:
- 2.1.0
-
write
A helper method so that dynamic dispatch of the writer.write(object) method will always use the more efficient Writable.writeTo(writer) mechanism if the object implements the Writable interface.- Parameters:
self
- a Writerwritable
- an object implementing the Writable interface- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.0
-
leftShift
Overloads the leftShift operator to provide an append mechanism to add values to a stream.- Parameters:
self
- an OutputStreamvalue
- a value to append- Returns:
- a Writer
- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.0
-
leftShift
Overloads the leftShift operator to add objects to an ObjectOutputStream.- Parameters:
self
- an ObjectOutputStreamvalue
- an object to write to the stream- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.5.0
-
leftShift
Pipe an InputStream into an OutputStream for efficient stream copying.- Parameters:
self
- stream on which to writein
- stream to read from- Returns:
- the outputstream itself
- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.0
-
leftShift
Overloads the leftShift operator to provide an append mechanism to add bytes to a stream.- Parameters:
self
- an OutputStreamvalue
- a value to append- Returns:
- an OutputStream
- Throws:
IOException
- if an I/O error occurs.- Since:
- 1.0
-
newObjectOutputStream
public static ObjectOutputStream newObjectOutputStream(OutputStream outputStream) throws IOException Create an object output stream for this output stream.- Parameters:
outputStream
- an output stream- Returns:
- an object output stream
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
-
withObjectOutputStream
public static <T> T withObjectOutputStream(OutputStream outputStream, @ClosureParams(value=SimpleType.class,options="java.io.ObjectOutputStream") Closure<T> closure) throws IOException Create a new ObjectOutputStream for this output stream and then pass it to the closure. This method ensures the stream is closed after the closure returns.- Parameters:
outputStream
- am output streamclosure
- a closure- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
- See Also:
-
newObjectInputStream
Create an object input stream for this input stream.- Parameters:
inputStream
- an input stream- Returns:
- an object input stream
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
-
newObjectInputStream
public static ObjectInputStream newObjectInputStream(InputStream inputStream, ClassLoader classLoader) throws IOException Create an object input stream for this input stream using the given class loader.- Parameters:
inputStream
- an input streamclassLoader
- the class loader to use when loading the class- Returns:
- an object input stream
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
-
eachObject
public static void eachObject(ObjectInputStream ois, Closure closure) throws IOException, ClassNotFoundException Iterates through the given object stream object by object. The ObjectInputStream is closed afterwards.- Parameters:
ois
- an ObjectInputStream, closed after the operationclosure
- a closure- Throws:
IOException
- if an IOException occurs.ClassNotFoundException
- if the class is not found.- Since:
- 1.0
-
withObjectInputStream
public static <T> T withObjectInputStream(InputStream inputStream, @ClosureParams(value=SimpleType.class,options="java.io.ObjectInputStream") Closure<T> closure) throws IOException 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:
inputStream
- an input streamclosure
- a closure- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
- See Also:
-
withObjectInputStream
public static <T> T withObjectInputStream(InputStream inputStream, ClassLoader classLoader, @ClosureParams(value=SimpleType.class,options="java.io.ObjectInputStream") Closure<T> closure) throws IOException 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:
inputStream
- an input streamclassLoader
- the class loader to use when loading the classclosure
- a closure- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
- See Also:
-
eachLine
public static <T> T eachLine(InputStream stream, String charset, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException 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:
stream
- a streamcharset
- opens the stream with a specified charsetclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.5
- See Also:
-
eachLine
public static <T> T eachLine(InputStream stream, String charset, int firstLine, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException 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:
stream
- a streamcharset
- opens the stream with a specified charsetfirstLine
- 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
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.7
- See Also:
-
eachLine
public static <T> T eachLine(InputStream stream, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException Iterates through this stream, passing each line to the given 1 or 2 arg closure. The stream is closed before this method returns.- Parameters:
stream
- a streamclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.6
- See Also:
-
eachLine
public static <T> T eachLine(InputStream stream, int firstLine, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException Iterates through this stream, passing each line to the given 1 or 2 arg closure. The stream is closed before this method returns.- Parameters:
stream
- a streamfirstLine
- 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
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.7
- See Also:
-
eachLine
public static <T> T eachLine(Reader self, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException Iterates through the given reader line by line. Each line is passed to the given 1 or 2 arg closure. If the closure has two arguments, the line count is passed as the second argument. The Reader is closed before this method returns.- Parameters:
self
- a Reader, closed after the method returnsclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.6
- See Also:
-
eachLine
public static <T> T eachLine(Reader self, int firstLine, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException Iterates through the given reader line by line. Each line is passed to the given 1 or 2 arg closure. If the closure has two arguments, the line count is passed as the second argument. The Reader is closed before this method returns.- Parameters:
self
- a Reader, closed after the method returnsfirstLine
- the line number value used for the first line (default is 1, set to 0 to start counting from 0)closure
- a closure which will be passed each line (or for 2 arg closures the line and line count)- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.7
-
splitEachLine
public static <T> T splitEachLine(Reader self, String regex, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException Iterates through the given reader line by line, splitting each line using the given regex separator. For each line, the given closure is called with a single parameter being the list of strings computed by splitting the line around matches of the given regular expression. The Reader is closed afterwards.Here is an example:
def s = 'The 3 quick\nbrown 4 fox' def result = '' new StringReader(s).splitEachLine(/\d/){ parts
->
result += "${parts[0]}_${parts[1]}|" } assert result == 'The _ quick|brown _ fox|'- Parameters:
self
- a Reader, closed after the method returnsregex
- the delimiting regular expressionclosure
- a closure- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.PatternSyntaxException
- if the regular expression's syntax is invalid- Since:
- 1.5.5
- See Also:
-
splitEachLine
public static <T> T splitEachLine(Reader self, Pattern pattern, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException Iterates through the given reader line by line, splitting each line using the given regex separator Pattern. For each line, the given closure is called with a single parameter being the list of strings computed by splitting the line around matches of the given regular expression. The Reader is closed afterwards.Here is an example:
def s = 'The 3 quick\nbrown 4 fox' def result = '' new StringReader(s).splitEachLine(~/\d/){ parts
->
result += "${parts[0]}_${parts[1]}|" } assert result == 'The _ quick|brown _ fox|'- Parameters:
self
- a Reader, closed after the method returnspattern
- the regular expression Pattern for the delimiterclosure
- a closure- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.PatternSyntaxException
- if the regular expression's syntax is invalid- Since:
- 1.6.8
- See Also:
-
splitEachLine
public static <T> T splitEachLine(InputStream stream, String regex, String charset, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException 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:
stream
- an InputStreamregex
- the delimiting regular expressioncharset
- opens the stream with a specified charsetclosure
- a closure- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.PatternSyntaxException
- if the regular expression's syntax is invalid- Since:
- 1.5.5
- See Also:
-
splitEachLine
public static <T> T splitEachLine(InputStream stream, Pattern pattern, String charset, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException 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:
stream
- an InputStreampattern
- the regular expression Pattern for the delimitercharset
- opens the stream with a specified charsetclosure
- a closure- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.6.8
- See Also:
-
splitEachLine
public static <T> T splitEachLine(InputStream stream, String regex, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException 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:
stream
- an InputStreamregex
- the delimiting regular expressionclosure
- a closure- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.PatternSyntaxException
- if the regular expression's syntax is invalid- Since:
- 1.5.6
- See Also:
-
splitEachLine
public static <T> T splitEachLine(InputStream stream, Pattern pattern, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException 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:
stream
- an InputStreampattern
- the regular expression Pattern for the delimiterclosure
- a closure- Returns:
- the last value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.6.8
- See Also:
-
readLine
Read a single, whole line from the given Reader. This method is designed for use with Readers that support themark()
operation like BufferReader. It has a fallback behavior for Readers that don't support mark() but the behavior doesn't correctly detect multi-character line termination (e.g. carriage return followed by linefeed). We recommend for Readers that don't support mark() you consider using one of the following methods instead: eachLine, readLines, or iterator.- Parameters:
self
- a Reader- Returns:
- a line
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
- See Also:
-
readLines
Reads the stream into a list, with one element for each line.- Parameters:
stream
- a stream- Returns:
- a List of lines
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
- See Also:
-
readLines
Reads the stream into a list, with one element for each line.- Parameters:
stream
- a streamcharset
- opens the stream with a specified charset- Returns:
- a List of lines
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.6.8
- See Also:
-
readLines
Reads the reader into a list of Strings, with one entry for each line. The reader is closed before this method returns.- Parameters:
reader
- a Reader- Returns:
- a List of lines
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
getText
Read the content of this InputStream and return it as a String. The stream is closed before this method returns.- Parameters:
is
- an input stream- Returns:
- the text from that URL
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
getText
Read the content of this InputStream using specified charset and return it as a String. The stream is closed before this method returns.- Parameters:
is
- an input streamcharset
- opens the stream with a specified charset- Returns:
- the text from that URL
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
getText
Read the content of the Reader and return it as a String. The reader is closed before this method returns.- Parameters:
reader
- a Reader whose content we want to read- Returns:
- a String containing the content of the buffered reader
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
- See Also:
-
getText
Read the content of the BufferedReader and return it as a String. The BufferedReader is closed afterwards.- Parameters:
reader
- a BufferedReader whose content we want to read- Returns:
- a String containing the content of the buffered reader
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
getBytes
Read the content of this InputStream and return it as a byte[]. The stream is closed before this method returns.- Parameters:
is
- an input stream- Returns:
- the byte[] from that InputStream
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.7.1
-
setBytes
Write the byte[] to the output stream. The stream is closed before this method returns.- Parameters:
os
- an output streambytes
- the byte[] to write to the output stream- Throws:
IOException
- if an IOException occurs.- Since:
- 1.7.1
-
writeLine
Write the text and append a newline (using the platform's line-ending).- Parameters:
writer
- a BufferedWriterline
- the line to write- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
iterator
Creates an iterator which will traverse through the reader a line at a time.- Parameters:
self
- a Reader object- Returns:
- an Iterator for the Reader
- Since:
- 1.5.0
- See Also:
-
iterator
Standard iterator for an input stream which iterates through the stream content in a byte-based fashion.- Parameters:
self
- an InputStream object- Returns:
- an Iterator for the InputStream
- Since:
- 1.5.0
-
iterator
Standard iterator for a data input stream which iterates through the stream content a Byte at a time.- Parameters:
self
- a DataInputStream object- Returns:
- an Iterator for the DataInputStream
- Since:
- 1.5.0
-
newReader
Creates a reader for this input stream.- Parameters:
self
- an input stream- Returns:
- a reader
- Since:
- 1.0
-
newReader
public static BufferedReader newReader(InputStream self, String charset) throws UnsupportedEncodingException Creates a reader for this input stream, using the specified charset as the encoding.- Parameters:
self
- an input streamcharset
- the charset for this input stream- Returns:
- a reader
- Throws:
UnsupportedEncodingException
- if the encoding specified is not supported- Since:
- 1.6.0
-
newPrintWriter
Create a new PrintWriter for this Writer.- Parameters:
writer
- a Writer- Returns:
- a PrintWriter
- Since:
- 1.6.0
-
newPrintWriter
Create a new PrintWriter for this OutputStream.- Parameters:
stream
- an OutputStream- Returns:
- a PrintWriter
- Since:
- 2.2.0
-
withPrintWriter
public static <T> T withPrintWriter(Writer writer, @ClosureParams(value=SimpleType.class,options="java.io.PrintWriter") Closure<T> closure) throws IOException Create a new PrintWriter for this Writer. The writer is passed to the closure, and will be closed before this method returns.- Parameters:
writer
- a writerclosure
- the closure to invoke with the PrintWriter- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.6.0
-
withPrintWriter
public static <T> T withPrintWriter(OutputStream stream, @ClosureParams(value=SimpleType.class,options="java.io.PrintWriter") Closure<T> closure) throws IOException Create a new PrintWriter for this OutputStream. The writer is passed to the closure, and will be closed before this method returns.- Parameters:
stream
- an OutputStreamclosure
- the closure to invoke with the PrintWriter- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 2.2.0
-
withWriter
public static <T> T withWriter(Writer writer, @ClosureParams(FirstParam.class) Closure<T> closure) throws IOException Allows this writer to be used within the closure, ensuring that it is flushed and closed before this method returns.- Parameters:
writer
- the writer which is used and then closedclosure
- the closure that the writer is passed into- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
-
withReader
public static <T> T withReader(Reader reader, @ClosureParams(FirstParam.class) Closure<T> closure) throws IOException Allows this reader to be used within the closure, ensuring that it is closed before this method returns.- Parameters:
reader
- the reader which is used and then closedclosure
- the closure that the writer is passed into- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
-
withStream
public static <T,U extends InputStream> T withStream(U stream, @ClosureParams(FirstParam.class) Closure<T> closure) throws IOException Allows this input stream to be used within the closure, ensuring that it is flushed and closed before this method returns.- Parameters:
stream
- the stream which is used and then closedclosure
- the closure that the stream is passed into- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
-
withReader
public static <T> T withReader(InputStream in, @ClosureParams(value=SimpleType.class,options="java.io.Reader") Closure<T> closure) throws IOException 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:
in
- a streamclosure
- the closure to invoke with the InputStream- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
- See Also:
-
withReader
public static <T> T withReader(InputStream in, String charset, @ClosureParams(value=SimpleType.class,options="java.io.Reader") Closure<T> closure) throws IOException 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:
in
- a streamcharset
- the charset used to decode the streamclosure
- the closure to invoke with the reader- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.6
- See Also:
-
withWriter
public static <T> T withWriter(OutputStream stream, @ClosureParams(value=SimpleType.class,options="java.io.Writer") Closure<T> closure) throws IOException Creates a writer from this stream, passing it to the given closure. This method ensures the stream is closed after the closure returns.- Parameters:
stream
- the stream which is used and then closedclosure
- the closure that the writer is passed into- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
- See Also:
-
newWriter
Creates a writer for this stream.- Parameters:
stream
- the stream which is used and then closed- Returns:
- the newly created Writer
- Since:
- 2.2.0
-
withWriter
public static <T> T withWriter(OutputStream stream, String charset, @ClosureParams(value=SimpleType.class,options="java.io.Writer") Closure<T> closure) throws IOException Creates a writer from this stream, passing it to the given closure. This method ensures the stream is closed after the closure returns.- Parameters:
stream
- the stream which is used and then closedcharset
- the charset usedclosure
- the closure that the writer is passed into- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
- See Also:
-
newWriter
public static Writer newWriter(OutputStream stream, String charset) throws UnsupportedEncodingException Creates a writer for this stream using the given charset.- Parameters:
stream
- the stream which is used and then closedcharset
- the charset used- Returns:
- the newly created Writer
- Throws:
UnsupportedEncodingException
- if an encoding exception occurs.- Since:
- 2.2.0
-
withStream
public static <T,U extends OutputStream> T withStream(U os, @ClosureParams(FirstParam.class) Closure<T> closure) throws IOException Passes this OutputStream to the closure, ensuring that the stream is closed after the closure returns, regardless of errors.- Parameters:
os
- the stream which is used and then closedclosure
- the closure that the stream is passed into- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.2
-
eachByte
public static void eachByte(InputStream is, @ClosureParams(value=SimpleType.class,options="byte") Closure closure) throws IOException Traverse through each byte of the specified stream. The stream is closed after the closure returns.- Parameters:
is
- stream to iterate over, closed after the method callclosure
- closure to apply to each byte- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
eachByte
public static void eachByte(InputStream is, int bufferLen, @ClosureParams(value=FromString.class,options="byte[],Integer") Closure closure) throws IOException 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:
is
- stream to iterate over, closed after the method call.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.- Throws:
IOException
- if an IOException occurs.- Since:
- 1.8
-
transformChar
public static void transformChar(Reader self, Writer writer, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure closure) throws IOException Transforms each character from this reader by passing it to the given closure. The Closure should return each transformed character, which will be passed to the Writer. The reader and writer will both be closed before this method returns.- Parameters:
self
- a Reader objectwriter
- a Writer to receive the transformed charactersclosure
- a closure that performs the required transformation- Throws:
IOException
- if an IOException occurs.- Since:
- 1.5.0
-
transformLine
public static void transformLine(Reader reader, Writer writer, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure closure) throws IOException Transforms the lines from a reader with a Closure and write them to a writer. Both Reader and Writer are closed after the operation.- Parameters:
reader
- Lines of text to be transformed. Reader is closed afterwards.writer
- Where transformed lines are written. Writer is closed afterwards.closure
- Single parameter closure that is called to transform each line of text from the reader, before writing it to the writer.- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
filterLine
public static void filterLine(Reader reader, Writer writer, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure closure) throws IOException Filter the lines from a reader and write them on the writer, according to a closure which returns true if the line should be included. Both Reader and Writer are closed after the operation.- Parameters:
reader
- a reader, closed after the callwriter
- a writer, closed after the callclosure
- the closure which returns booleans- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
-
filterLine
public static Writable filterLine(Reader reader, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure closure) Filter the lines from this Reader, and return a Writable which can be used to stream the filtered lines to a destination. The closure should returntrue
if the line should be passed to the writer.- Parameters:
reader
- this readerclosure
- a closure used for filtering- Returns:
- a Writable which will use the closure to filter each line from the reader when the Writable#writeTo(Writer) is called.
- Since:
- 1.0
-
filterLine
public static Writable filterLine(InputStream self, @ClosureParams(value=SimpleType.class,options="java.lang.String") 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 returntrue
if the line should be passed to the writer.- Parameters:
self
- an input streampredicate
- a closure which returns boolean and takes a line- Returns:
- a writable which writes out the filtered lines
- Since:
- 1.0
- See Also:
-
filterLine
public static Writable filterLine(InputStream self, String charset, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure predicate) throws UnsupportedEncodingException Filter lines from an input stream using a closure predicate. The closure will be passed each line as a String, and it should returntrue
if the line should be passed to the writer.- Parameters:
self
- an input streamcharset
- opens the stream with a specified charsetpredicate
- a closure which returns boolean and takes a line- Returns:
- a writable which writes out the filtered lines
- Throws:
UnsupportedEncodingException
- if the encoding specified is not supported- Since:
- 1.6.8
- See Also:
-
filterLine
public static void filterLine(InputStream self, Writer writer, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure predicate) throws IOException 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 returntrue
if the line should be passed to the writer.- Parameters:
self
- the InputStreamwriter
- a writer to write output topredicate
- a closure which returns true if a line should be accepted- Throws:
IOException
- if an IOException occurs.- Since:
- 1.0
- See Also:
-
filterLine
public static void filterLine(InputStream self, Writer writer, String charset, @ClosureParams(value=SimpleType.class,options="java.lang.String") Closure predicate) throws IOException 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 returntrue
if the line should be passed to the writer.- Parameters:
self
- the InputStreamwriter
- a writer to write output tocharset
- opens the stream with a specified charsetpredicate
- a closure which returns true if a line should be accepted- Throws:
IOException
- if an IOException occurs.- Since:
- 1.6.8
- See Also:
-
withCloseable
public static <T,U extends Closeable> T withCloseable(U self, @ClosureParams(FirstParam.class) Closure<T> action) throws IOException Allows this closeable to be used within the closure, ensuring that it is closed once the closure has been executed and before this method returns.As with the try-with-resources statement, if multiple exceptions are thrown the exception from the closure will be returned and the exception from closing will be added as a suppressed exception.
- Parameters:
self
- the Closeableaction
- the closure taking the Closeable as parameter- Returns:
- the value returned by the closure
- Throws:
IOException
- if an IOException occurs.- Since:
- 2.4.0
-
withCloseable
public static <T,U extends AutoCloseable> T withCloseable(U self, @ClosureParams(FirstParam.class) Closure<T> action) throws Exception Allows this AutoCloseable to be used within the closure, ensuring that it is closed once the closure has been executed and before this method returns.As with the try-with-resources statement, if multiple exceptions are thrown the exception from the closure will be returned and the exception from closing will be added as a suppressed exception.
- Parameters:
self
- the AutoCloseableaction
- the closure taking the AutoCloseable as parameter- Returns:
- the value returned by the closure
- Throws:
Exception
- if an Exception occurs.- Since:
- 2.5.0
-