[Java] Class NioExtensions

  • org.apache.groovy.nio.extensions.NioExtensions
public class NioExtensions
extends DefaultGroovyMethodsSupport

This class defines new groovy methods for Readers, Writers, InputStreams and OutputStreams which appear on normal JDK classes inside the Groovy environment. Static methods are used with the first parameter being the destination class, i.e. 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.

Methods Summary

Methods
Type Params Return Type Name and description
public static void append(Path self, Object text)
Append the text at the end of the Path without writing a BOM.
public static void append(Path file, Reader reader)
Append the text supplied by the Writer at the end of the File without writing a BOM.
public static void append(Path file, Writer writer)
Append the text supplied by the Writer at the end of the File without writing a BOM.
public static void append(Path self, byte[] bytes)
Append bytes to the end of a Path.
public static void append(Path self, InputStream stream)
Append binary data to the file.
public static void append(Path self, Object text, boolean writeBom)
Append the text at the end of the Path.
public static void append(Path self, Object text, String charset)
Append the text at the end of the Path without writing a BOM, using a specified encoding.
public static void append(Path self, Object text, String charset, boolean writeBom)
Append the text at the end of the Path, using a specified encoding.
public static void append(Path file, Writer writer, boolean writeBom)
Append the text supplied by the Writer at the end of the File, using a specified encoding.
public static void append(Path file, Writer writer, String charset)
Append the text supplied by the Writer at the end of the File without writing a BOM, using a specified encoding.
public static void append(Path file, Writer writer, String charset, boolean writeBom)
Append the text supplied by the Writer at the end of the File, using a specified encoding.
public static void append(Path file, Reader reader, boolean writeBom)
Append the text supplied by the Reader at the end of the File, using a specified encoding.
public static void append(Path file, Reader reader, String charset)
Append the text supplied by the Reader at the end of the File without writing a BOM, using a specified encoding.
public static void append(Path file, Reader reader, String charset, boolean writeBom)
Append the text supplied by the Reader at the end of the File, using a specified encoding.
<T> public static T asType(Path path, Class<T> c)
Converts this Path to a Writable or delegates to default DefaultGroovyMethods.asType.
public static Path asWritable(Path self)
Converts this Path to a Writable.
public static Path asWritable(Path self, String encoding)
Allows a file to return a Writable implementation that can output itself to a Writer stream.
public static boolean deleteDir(Path self)
Deletes a directory with all contained files and subdirectories.
public static void eachByte(Path self, Closure closure)
Traverse through each byte of this Path
public static void eachByte(Path self, int bufferLen, Closure closure)
Traverse through the bytes of this Path, bufferLen bytes at a time.
public static void eachDir(Path self, Closure closure)
Invokes the closure for each subdirectory in this directory, ignoring regular files.
public static void eachDirMatch(Path self, Object nameFilter, Closure closure)
Invokes the closure for each subdirectory whose name (dir.name) matches the given nameFilter in the given directory - calling the DefaultGroovyMethods#isCase(java.lang.Object, java.lang.Object) method to determine if a match occurs.
public static void eachDirRecurse(Path self, Closure closure)
Recursively processes each descendant subdirectory in this directory.
public static void eachFile(Path self, FileType fileType, Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory.
public static void eachFile(Path self, Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory.
public static void eachFileMatch(Path self, FileType fileType, Object nameFilter, Closure closure)
Invokes the closure for each file whose name (file.name) matches the given nameFilter in the given directory - calling the DefaultGroovyMethods.isCase method to determine if a match occurs.
public static void eachFileMatch(Path self, Object nameFilter, Closure closure)
Invokes the closure for each file whose name (file.name) matches the given nameFilter in the given directory - calling the DefaultGroovyMethods.isCase method to determine if a match occurs.
public static void eachFileRecurse(Path self, FileType fileType, Closure closure)
Processes each descendant file in this directory and any sub-directories.
public static void eachFileRecurse(Path self, Closure closure)
Processes each descendant file in this directory and any sub-directories.
<T> public static T eachLine(Path self, Closure<T> closure)
Iterates through this path line by line.
<T> public static T eachLine(Path self, String charset, Closure<T> closure)
Iterates through this file line by line.
<T> public static T eachLine(Path self, int firstLine, Closure<T> closure)
Iterates through this file line by line.
<T> public static T eachLine(Path self, String charset, int firstLine, Closure<T> closure)
Iterates through this file line by line.
public static void eachObject(Path self, Closure closure)
Iterates through the given file object by object.
public static Writable filterLine(Path self, Closure closure)
Filters the lines of a Path and creates a Writable in return to stream the filtered lines.
public static Writable filterLine(Path self, String charset, Closure closure)
Filters the lines of a Path and creates a Writable in return to stream the filtered lines.
public static void filterLine(Path self, Writer writer, Closure closure)
Filter the lines from this Path, and write them to the given writer based on the given closure predicate.
public static void filterLine(Path self, Writer writer, String charset, Closure closure)
Filter the lines from this Path, and write them to the given writer based on the given closure predicate.
public static byte[] getBytes(Path self)
Read the content of the Path and returns it as a byte[].
public static String getText(Path self, String charset)
Read the content of the Path using the specified encoding and return it as a String.
public static String getText(Path self)
Read the content of the Path and returns it as a String.
public static Path leftShift(Path self, Object text)
Write the text to the Path.
public static Path leftShift(Path self, byte[] bytes)
Write bytes to a Path.
public static Path leftShift(Path path, InputStream data)
Append binary data to the file.
public static DataInputStream newDataInputStream(Path self)
Create a data input stream for this file
public static DataOutputStream newDataOutputStream(Path self)
Creates a new data output stream for this file.
public static BufferedInputStream newInputStream(Path self)
Creates a buffered input stream for this file.
public static ObjectInputStream newObjectInputStream(Path self)
Create an object input stream for this file.
public static ObjectInputStream newObjectInputStream(Path self, ClassLoader classLoader)
Create an object input stream for this path using the given class loader.
public static ObjectOutputStream newObjectOutputStream(Path self)
Create an object output stream for this path.
public static BufferedOutputStream newOutputStream(Path self)
Create a buffered output stream for this file.
public static PrintWriter newPrintWriter(Path self)
Create a new PrintWriter for this file.
public static PrintWriter newPrintWriter(Path self, String charset)
Create a new PrintWriter for this file, using specified charset.
public static BufferedReader newReader(Path self)
Create a buffered reader for this file.
public static BufferedReader newReader(Path self, String charset)
Create a buffered reader for this file, using the specified charset as the encoding.
public static BufferedWriter newWriter(Path self)
Create a buffered writer for this file.
public static BufferedWriter newWriter(Path self, boolean append)
Creates a buffered writer for this file, optionally appending to the existing file content.
public static BufferedWriter newWriter(Path self, String charset, boolean append)
Helper method to create a buffered writer for a file without writing a BOM.
public static BufferedWriter newWriter(Path self, String charset, boolean append, boolean writeBom)
Helper method to create a buffered writer for a file.
public static BufferedWriter newWriter(Path self, String charset)
Creates a buffered writer for this file without writing a BOM, writing data using the given encoding.
public static byte[] readBytes(Path self)
Reads the content of the file into a byte array.
public static List<String> readLines(Path self)
Reads the file into a list of Strings, with one item for each line.
public static List<String> readLines(Path self, String charset)
Reads the file into a list of Strings, with one item for each line.
public static boolean renameTo(Path self, String newPathName)
Renames a file.
public static boolean renameTo(Path self, URI newPathName)
Renames a file.
public static void setBytes(Path self, byte[] bytes)
Write the bytes from the byte array to the Path.
public static void setText(Path self, String text)
Synonym for write(text) allowing file.text = 'foo'.
public static void setText(Path self, String text, String charset)
Synonym for write(text, charset) allowing:
 myFile.setText('some text', charset)
 
or with some help from ExpandoMetaClass, you could do something like:
 myFile.metaClass.setText = { String s -> delegate.setText(s, 'UTF-8') }
 myfile.text = 'some text'
 
public static long size(Path self)
Provide the standard Groovy size() method for Path.
<T> public static T splitEachLine(Path self, String regex, Closure<T> closure)
Iterates through this file line by line, splitting each line using the given regex separator.
<T> public static T splitEachLine(Path self, Pattern pattern, Closure<T> closure)
Iterates through this file line by line, splitting each line using the given separator Pattern.
<T> public static T splitEachLine(Path self, String regex, String charset, Closure<T> closure)
Iterates through this file line by line, splitting each line using the given regex separator.
<T> public static T splitEachLine(Path self, Pattern pattern, String charset, Closure<T> closure)
Iterates through this file line by line, splitting each line using the given regex separator Pattern.
public static void traverse(Path self, Map<String, Object> options, Closure closure)
Processes each descendant file in this directory and any sub-directories.
public static void traverse(Path self, Closure closure)
Processes each descendant file in this directory and any sub-directories.
public static void traverse(Path self, Map<String, Object> options)
Invokes the closure specified with key 'visit' in the options Map for each descendant file in this directory tree.
<T> public static T withCloseable(Closeable self, Closure<T> action)
#deprecated use the variant in IOGroovyMethods
<T> public static T withDataInputStream(Path self, Closure<T> closure)
Create a new DataInputStream for this file and passes it into the closure.
<T> public static T withDataOutputStream(Path self, Closure<T> closure)
Create a new DataOutputStream for this file and passes it into the closure.
<T> public static T withInputStream(Path self, Closure<T> closure)
Create a new InputStream for this file and passes it into the closure.
<T> public static T withObjectInputStream(Path path, Closure<T> closure)
Create a new ObjectInputStream for this file and pass it to the closure.
<T> public static T withObjectInputStream(Path self, ClassLoader classLoader, Closure<T> closure)
Create a new ObjectInputStream for this file associated with the given class loader and pass it to the closure.
<T> public static T withObjectOutputStream(Path self, Closure<T> closure)
Create a new ObjectOutputStream for this path and then pass it to the closure.
<T> public static T withOutputStream(Path self, Closure<T> closure)
Creates a new OutputStream for this file and passes it into the closure.
<T> public static T withPrintWriter(Path self, Closure<T> closure)
Create a new PrintWriter for this file which is then passed it into the given closure.
<T> public static T withPrintWriter(Path self, String charset, Closure<T> closure)
Create a new PrintWriter with a specified charset for this file.
<T> public static T withReader(Path self, Closure<T> closure)
Create a new BufferedReader for this file and then passes it into the closure, ensuring the reader is closed after the closure returns.
<T> public static T withReader(Path self, String charset, Closure<T> closure)
Create a new BufferedReader for this file using the specified charset and then passes it into the closure, ensuring the reader is closed after the closure returns.
<T> public static T withWriter(Path self, Closure<T> closure)
Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.
<T> public static T withWriter(Path self, String charset, Closure<T> closure)
Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.
<T> public static T withWriter(Path self, String charset, boolean writeBom, Closure<T> closure)
Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.
<T> public static T withWriterAppend(Path self, String charset, Closure<T> closure)
Create a new BufferedWriter which will append to this file.
<T> public static T withWriterAppend(Path self, String charset, boolean writeBom, Closure<T> closure)
Create a new BufferedWriter which will append to this file.
<T> public static T withWriterAppend(Path self, Closure<T> closure)
Create a new BufferedWriter for this file in append mode.
public static void write(Path self, String text)
Write the text to the Path without writing a BOM .
public static void write(Path self, String text, boolean writeBom)
Write the text to the Path.
public static void write(Path self, String text, String charset)
Write the text to the Path without writing a BOM, using the specified encoding.
public static void write(Path self, String text, String charset, boolean writeBom)
Write the text to the Path, using the specified encoding.

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class DefaultGroovyMethodsSupport cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarQueue, createSimilarSet, normaliseIndex, sameType, subListBorders, subListBorders, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired

Method Detail

public static void append(Path self, Object text)

Append the text at the end of the Path without writing a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to append at the end of the Path
Since:
2.3.0

public static void append(Path file, Reader reader)

Append the text supplied by the Writer at the end of the File without writing a BOM.

throws:
IOException if an IOException occurs.
Parameters:
file - a Path
reader - the Reader supplying the text to append at the end of the File
Since:
2.3.0

public static void append(Path file, Writer writer)

Append the text supplied by the Writer at the end of the File without writing a BOM.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
writer - the Writer supplying the text to append at the end of the File
Since:
2.3.0

public static void append(Path self, byte[] bytes)

Append bytes to the end of a Path. It will not be interpreted as text.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
bytes - the byte array to append to the end of the Path
Since:
2.3.0

public static void append(Path self, InputStream stream)

Append binary data to the file. It will not be interpreted as text.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
stream - stream to read data from.
Since:
2.3.0

public static void append(Path self, Object text, boolean writeBom)

Append the text at the end of the Path. If the default charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias) and writeBom is true, the requisite byte order mark is written to the file before the text.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to append at the end of the Path
writeBom - whether to write the BOM
Since:
2.5.0

public static void append(Path self, Object text, String charset)

Append the text at the end of the Path without writing a BOM, using a specified encoding.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to append at the end of the Path
charset - the charset used
Since:
2.3.0

public static void append(Path self, Object text, String charset, boolean writeBom)

Append the text at the end of the Path, using a specified encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the file before the text is appended.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to append at the end of the Path
charset - the charset used
writeBom - whether to write the BOM
Since:
2.5.0

public static void append(Path file, Writer writer, boolean writeBom)

Append the text supplied by the Writer at the end of the File, using a specified encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the file before the text is appended.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
writer - the Writer supplying the text to append at the end of the File
writeBom - whether to write the BOM
Since:
2.5.0

public static void append(Path file, Writer writer, String charset)

Append the text supplied by the Writer at the end of the File without writing a BOM, using a specified encoding.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
writer - the Writer supplying the text to append at the end of the File
charset - the charset used
Since:
2.3.0

public static void append(Path file, Writer writer, String charset, boolean writeBom)

Append the text supplied by the Writer at the end of the File, using a specified encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the file before the text is appended.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
writer - the Writer supplying the text to append at the end of the File
charset - the charset used
writeBom - whether to write the BOM
Since:
2.5.0

public static void append(Path file, Reader reader, boolean writeBom)

Append the text supplied by the Reader at the end of the File, using a specified encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the file before the text is appended.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
reader - the Reader supplying the text to append at the end of the File
writeBom - whether to write the BOM
Since:
2.5.0

public static void append(Path file, Reader reader, String charset)

Append the text supplied by the Reader at the end of the File without writing a BOM, using a specified encoding.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
reader - the Reader supplying the text to append at the end of the File
charset - the charset used
Since:
2.3.0

public static void append(Path file, Reader reader, String charset, boolean writeBom)

Append the text supplied by the Reader at the end of the File, using a specified encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the file before the text is appended.

throws:
IOException if an IOException occurs.
Parameters:
file - a File
reader - the Reader supplying the text to append at the end of the File
charset - the charset used
writeBom - whether to write the BOM
Since:
2.5.0

<T> @SuppressWarnings("unchecked") public static T asType(Path path, Class<T> c)

Converts this Path to a Writable or delegates to default DefaultGroovyMethods.asType.

Parameters:
path - a Path
c - the desired class
Returns:
the converted object
Since:
2.3.0

public static Path asWritable(Path self)

Converts this Path to a Writable.

Parameters:
self - a Path
Returns:
a Path which wraps the input file and which implements Writable
Since:
2.3.0

public static Path asWritable(Path self, String encoding)

Allows a file to return a Writable implementation that can output itself to a Writer stream.

Parameters:
self - a Path
encoding - the encoding to be used when reading the file's contents
Returns:
Path which wraps the input file and which implements Writable
Since:
2.3.0

public static boolean deleteDir(Path self)

Deletes a directory with all contained files and subdirectories.

The method returns

  • true, when deletion was successful
  • true, when it is called for a non existing directory
  • false, when it is called for a file which isn't a directory
  • false, when directory couldn't be deleted
Parameters:
self - a Path
Returns:
true if the file doesn't exist or deletion was successful
Since:
2.3.0

public static void eachByte(Path self, @ClosureParams(value = SimpleType.class, options = "byte") Closure closure)

Traverse through each byte of this Path

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
See Also:
IOGroovyMethods.eachByte
Since:
2.3.0

public static void eachByte(Path self, int bufferLen, @ClosureParams(value = FromString.class, options = "byte[],Integer") Closure closure)

Traverse through the bytes of this Path, bufferLen bytes at a time.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
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.
See Also:
IOGroovyMethods.eachByte
Since:
2.3.0

public static void eachDir(Path self, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Invokes the closure for each subdirectory in this directory, ignoring regular files.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
closure - a closure (the parameter is the Path for the subdirectory file)
See Also:
eachFile(Path, groovy.io.FileType, groovy.lang.Closure)
Since:
2.3.0

public static void eachDirMatch(Path self, Object nameFilter, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Invokes the closure for each subdirectory whose name (dir.name) matches the given nameFilter in the given directory - calling the DefaultGroovyMethods#isCase(java.lang.Object, java.lang.Object) method to determine if a match occurs. This method can be used with different kinds of filters like regular expressions, classes, ranges etc. Only subdirectories are matched; regular files are ignored.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
nameFilter - the nameFilter to perform on the name of the directory (using the DefaultGroovyMethods.isCase method)
closure - the closure to invoke
See Also:
eachFileMatch(Path, groovy.io.FileType, Object, groovy.lang.Closure)
Since:
2.3.0

public static void eachDirRecurse(Path self, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Recursively processes each descendant subdirectory in this directory. Processing consists of calling closure passing it the current subdirectory and then recursively processing that subdirectory. Regular files are ignored during traversal.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
closure - a closure
See Also:
eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
Since:
2.3.0

public static void eachFile(Path self, FileType fileType, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Invokes the closure for each 'child' file in this 'parent' folder/directory. Both regular files and subfolders/subdirectories can be processed depending on the fileType enum value.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
fileType - if normal files or directories or both should be processed
closure - the closure to invoke
Since:
2.3.0

public static void eachFile(Path self, Closure closure)

Invokes the closure for each 'child' file in this 'parent' folder/directory. Both regular files and subfolders/subdirectories are processed.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
closure - a closure (the parameter is the Path for the 'child' file)
See Also:
eachFile(Path, groovy.io.FileType, groovy.lang.Closure)
Since:
2.3.0

public static void eachFileMatch(Path self, FileType fileType, Object nameFilter, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Invokes the closure for each file whose name (file.name) matches the given nameFilter in the given directory - calling the DefaultGroovyMethods.isCase method to determine if a match occurs. This method can be used with different kinds of filters like regular expressions, classes, ranges etc. Both regular files and subdirectories may be candidates for matching depending on the value of fileType.

 // collect names of files in baseDir matching supplied regex pattern
 import static groovy.io.FileType.*
 def names = []
 baseDir.eachFileMatch FILES, ~/foo\d\.txt/, { names << it.name }
 assert names == ['foo1.txt', 'foo2.txt']

 // remove all *.bak files in baseDir
 baseDir.eachFileMatch FILES, ~/.*\.bak/, { Path bak -> bak.delete() }

 // print out files > 4K in size from baseDir
 baseDir.eachFileMatch FILES, { new Path(baseDir, it).size() > 4096 }, { println "$it.name ${it.size()}" }
 
throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
fileType - whether normal files or directories or both should be processed
nameFilter - the filter to perform on the name of the file/directory (using the DefaultGroovyMethods.isCase method)
closure - the closure to invoke
Since:
2.3.0

public static void eachFileMatch(Path self, Object nameFilter, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Invokes the closure for each file whose name (file.name) matches the given nameFilter in the given directory - calling the DefaultGroovyMethods.isCase method to determine if a match occurs. This method can be used with different kinds of filters like regular expressions, classes, ranges etc. Both regular files and subdirectories are matched.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
nameFilter - the nameFilter to perform on the name of the file (using the DefaultGroovyMethods.isCase method)
closure - the closure to invoke
See Also:
eachFileMatch(Path, groovy.io.FileType, Object, groovy.lang.Closure)
Since:
2.3.0

public static void eachFileRecurse(Path self, FileType fileType, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Processes each descendant file in this directory and any sub-directories. Processing consists of potentially calling closure passing it the current file (which may be a normal file or subdirectory) and then if a subdirectory was encountered, recursively processing the subdirectory. Whether the closure is called is determined by whether the file was a normal file or subdirectory and the value of fileType.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
fileType - if normal files or directories or both should be processed
closure - the closure to invoke on each file
Since:
2.3.0

public static void eachFileRecurse(Path self, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Processes each descendant file in this directory and any sub-directories. Processing consists of calling closure passing it the current file (which may be a normal file or subdirectory) and then if a subdirectory was encountered, recursively processing the subdirectory.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
closure - a Closure
See Also:
eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
Since:
2.3.0

<T> public static T eachLine(Path self, @ClosureParams(value = FromString.class, options = {"String", "String,Integer"}) Closure<T> closure)

Iterates through this path line by line. Each line is passed to the given 1 or 2 arg closure. The file is read using a reader which is closed before this method returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
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
See Also:
eachLine(Path, int, groovy.lang.Closure)
Since:
2.3.0

<T> public static T eachLine(Path self, String charset, @ClosureParams(value = FromString.class, options = {"String", "String,Integer"}) Closure<T> closure)

Iterates through this file line by line. Each line is passed to the given 1 or 2 arg closure. The file is read using a reader which is closed before this method returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - opens the file 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
See Also:
eachLine(Path, String, int, groovy.lang.Closure)
Since:
2.3.0

<T> public static T eachLine(Path self, int firstLine, @ClosureParams(value = FromString.class, options = {"String", "String,Integer"}) Closure<T> closure)

Iterates through this file line by line. Each line is passed to the given 1 or 2 arg closure. The file is read using a reader which is closed before this method returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
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
See Also:
IOGroovyMethods.eachLine
Since:
2.3.0

<T> public static T eachLine(Path self, String charset, int firstLine, @ClosureParams(value = FromString.class, options = {"String", "String,Integer"}) Closure<T> closure)

Iterates through this file line by line. Each line is passed to the given 1 or 2 arg closure. The file is read using a reader which is closed before this method returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - opens the file 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
See Also:
IOGroovyMethods.eachLine
Since:
2.3.0

public static void eachObject(Path self, Closure closure)

Iterates through the given file object by object.

throws:
java.io.IOException if an IOException occurs.
throws:
ClassNotFoundException if the class is not found.
Parameters:
self - a Path object
closure - a closure
See Also:
IOGroovyMethods.eachObject
Since:
2.3.0

public static Writable filterLine(Path self, @ClosureParams(value = SimpleType.class, options = "java.lang.String") Closure closure)

Filters the lines of a Path and creates a Writable in return to stream the filtered lines.

throws:
java.io.IOException if self is not readable
Parameters:
self - a Path
closure - a closure which returns a boolean indicating to filter the line or not
Returns:
a Writable closure
See Also:
IOGroovyMethods.filterLine
Since:
2.3.0

public static Writable filterLine(Path self, String charset, @ClosureParams(value = SimpleType.class, options = "java.lang.String") Closure closure)

Filters the lines of a Path and creates a Writable in return to stream the filtered lines.

throws:
java.io.IOException if an IOException occurs
Parameters:
self - a Path
charset - opens the file with a specified charset
closure - a closure which returns a boolean indicating to filter the line or not
Returns:
a Writable closure
See Also:
IOGroovyMethods.filterLine
Since:
2.3.0

public static void filterLine(Path self, Writer writer, @ClosureParams(value = SimpleType.class, options = "java.lang.String") Closure closure)

Filter the lines from this Path, and write them to the given writer based on the given closure predicate.

throws:
java.io.IOException if self is not readable
Parameters:
self - a Path
writer - a writer destination to write filtered lines to
closure - a closure which takes each line as a parameter and returns true if the line should be written to this writer.
See Also:
IOGroovyMethods.filterLine
Since:
2.3.0

public static void filterLine(Path self, Writer writer, String charset, @ClosureParams(value = SimpleType.class, options = "java.lang.String") Closure closure)

Filter the lines from this Path, and write them to the given writer based on the given closure predicate.

throws:
java.io.IOException if an IO error occurs
Parameters:
self - a Path
writer - a writer destination to write filtered lines to
charset - opens the file with a specified charset
closure - a closure which takes each line as a parameter and returns true if the line should be written to this writer.
See Also:
IOGroovyMethods.filterLine
Since:
2.3.0

public static byte[] getBytes(Path self)

Read the content of the Path and returns it as a byte[].

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - the file whose content we want to read
Returns:
a String containing the content of the file
Since:
2.3.0

public static String getText(Path self, String charset)

Read the content of the Path using the specified encoding and return it as a String.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - the file whose content we want to read
charset - the charset used to read the content of the file
Returns:
a String containing the content of the file
Since:
2.3.0

public static String getText(Path self)

Read the content of the Path and returns it as a String.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - the file whose content we want to read
Returns:
a String containing the content of the file
Since:
2.3.0

public static Path leftShift(Path self, Object text)

Write the text to the Path.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to write to the Path
Returns:
the original file
Since:
2.3.0

public static Path leftShift(Path self, byte[] bytes)

Write bytes to a Path.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
bytes - the byte array to append to the end of the Path
Returns:
the original file
Since:
2.3.0

public static Path leftShift(Path path, InputStream data)

Append binary data to the file. See append(Path, java.io.InputStream)

throws:
java.io.IOException if an IOException occurs.
Parameters:
path - a Path
data - an InputStream of data to write to the file
Returns:
the file
Since:
2.3.0

public static DataInputStream newDataInputStream(Path self)

Create a data input stream for this file

throws:
java.io.FileNotFoundException if the file is not found.
Parameters:
self - a Path
Returns:
a DataInputStream of the file
Since:
2.3.0

public static DataOutputStream newDataOutputStream(Path self)

Creates a new data output stream for this file.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a file object
Returns:
the created DataOutputStream
Since:
2.3.0

public static BufferedInputStream newInputStream(Path self)

Creates a buffered input stream for this file.

throws:
java.io.FileNotFoundException if the file is not found.
Parameters:
self - a Path
Returns:
a BufferedInputStream of the file
Since:
2.3.0

public static ObjectInputStream newObjectInputStream(Path self)

Create an object input stream for this file.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path object
Returns:
an object input stream
Since:
2.3.0

public static ObjectInputStream newObjectInputStream(Path self, ClassLoader classLoader)

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

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path object
classLoader - the class loader to use when loading the class
Returns:
an object input stream
Since:
2.3.0

public static ObjectOutputStream newObjectOutputStream(Path self)

Create an object output stream for this path.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path object
Returns:
an object output stream
Since:
2.3.0

public static BufferedOutputStream newOutputStream(Path self)

Create a buffered output stream for this file.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a file object
Returns:
the created OutputStream
Since:
2.3.0

public static PrintWriter newPrintWriter(Path self)

Create a new PrintWriter for this file.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
Returns:
the created PrintWriter
Since:
2.3.0

public static PrintWriter newPrintWriter(Path self, String charset)

Create a new PrintWriter for this file, using specified charset.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the charset
Returns:
a PrintWriter
Since:
2.3.0

public static BufferedReader newReader(Path self)

Create a buffered reader for this file.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
Returns:
a BufferedReader
Since:
2.3.0

public static BufferedReader newReader(Path self, String charset)

Create a buffered reader for this file, using the specified charset as the encoding.

throws:
java.io.FileNotFoundException if the Path was not found
throws:
java.io.UnsupportedEncodingException if the encoding specified is not supported
Parameters:
self - a Path
charset - the charset for this Path
Returns:
a BufferedReader
Since:
2.3.0

public static BufferedWriter newWriter(Path self)

Create a buffered writer for this file.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
Returns:
a BufferedWriter
Since:
2.3.0

public static BufferedWriter newWriter(Path self, boolean append)

Creates a buffered writer for this file, optionally appending to the existing file content.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
append - true if data should be appended to the file
Returns:
a BufferedWriter
Since:
2.3.0

public static BufferedWriter newWriter(Path self, String charset, boolean append)

Helper method to create a buffered writer for a file without writing a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the name of the encoding used to write in this file
append - true if in append mode
Returns:
a BufferedWriter
Since:
2.3.0

public static BufferedWriter newWriter(Path self, String charset, boolean append, boolean writeBom)

Helper method to create a buffered writer for a file. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), the requisite byte order mark is written to the stream before the writer is returned.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the name of the encoding used to write in this file
append - true if in append mode
writeBom - whether to write a BOM
Returns:
a BufferedWriter
Since:
2.5.0

public static BufferedWriter newWriter(Path self, String charset)

Creates a buffered writer for this file without writing a BOM, writing data using the given encoding.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the name of the encoding used to write in this file
Returns:
a BufferedWriter
Since:
2.3.0

public static byte[] readBytes(Path self)

Reads the content of the file into a byte array.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
Returns:
a byte array with the contents of the file.
Since:
2.3.0

public static List<String> readLines(Path self)

Reads the file into a list of Strings, with one item for each line.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
Returns:
a List of lines
See Also:
IOGroovyMethods.readLines
Since:
2.3.0

public static List<String> readLines(Path self, String charset)

Reads the file into a list of Strings, with one item for each line.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - opens the file with a specified charset
Returns:
a List of lines
See Also:
IOGroovyMethods.readLines
Since:
2.3.0

public static boolean renameTo(Path self, String newPathName)

Renames a file.

Parameters:
self - a Path
newPathName - The new pathname for the named file
Returns:
true if and only if the renaming succeeded; false otherwise
Since:
2.3.0

public static boolean renameTo(Path self, URI newPathName)

Renames a file.

Parameters:
self - a Path
newPathName - The new target path specified as a URI object
Returns:
true if and only if the renaming succeeded; false otherwise
Since:
2.3.0

public static void setBytes(Path self, byte[] bytes)

Write the bytes from the byte array to the Path.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - the file to write to
bytes - the byte[] to write to the file
Since:
2.3.0

public static void setText(Path self, String text)

Synonym for write(text) allowing file.text = 'foo'.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to write to the Path
See Also:
write(Path, String)
Since:
2.3.0

public static void setText(Path self, String text, String charset)

Synonym for write(text, charset) allowing:

 myFile.setText('some text', charset)
 
or with some help from ExpandoMetaClass, you could do something like:
 myFile.metaClass.setText = { String s -> delegate.setText(s, 'UTF-8') }
 myfile.text = 'some text'
 
throws:
java.io.IOException if an IOException occurs.
Parameters:
self - A Path
charset - The charset used when writing to the file
text - The text to write to the Path
See Also:
write(Path, String, String)
Since:
2.3.0

public static long size(Path self)

Provide the standard Groovy size() method for Path.

Parameters:
self - a Path object
Returns:
the file's size (length)
Since:
2.3.0

<T> public static T splitEachLine(Path self, String regex, @ClosureParams(value = FromString.class, options = {"List", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure)

Iterates through this file 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. Finally the resources used for processing the file are closed.

throws:
java.io.IOException if an IOException occurs.
throws:
java.util.regex.PatternSyntaxException if the regular expression's syntax is invalid
Parameters:
self - a Path
regex - the delimiting regular expression
closure - a closure
Returns:
the last value returned by the closure
See Also:
IOGroovyMethods.splitEachLine
Since:
2.3.0

<T> public static T splitEachLine(Path self, Pattern pattern, @ClosureParams(value = FromString.class, options = {"List", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure)

Iterates through this file line by line, splitting each line using the given 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 Pattern. Finally the resources used for processing the file are closed.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
pattern - the regular expression Pattern for the delimiter
closure - a closure
Returns:
the last value returned by the closure
See Also:
IOGroovyMethods.splitEachLine
Since:
2.3.0

<T> public static T splitEachLine(Path self, String regex, String charset, @ClosureParams(value = FromString.class, options = {"List", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure)

Iterates through this file 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. Finally the resources used for processing the file are closed.

throws:
java.io.IOException if an IOException occurs.
throws:
java.util.regex.PatternSyntaxException if the regular expression's syntax is invalid
Parameters:
self - a Path
regex - the delimiting regular expression
charset - opens the file with a specified charset
closure - a closure
Returns:
the last value returned by the closure
See Also:
IOGroovyMethods.splitEachLine
Since:
2.3.0

<T> public static T splitEachLine(Path self, Pattern pattern, String charset, @ClosureParams(value = FromString.class, options = {"List", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure)

Iterates through this file 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. Finally the resources used for processing the file are closed.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
pattern - the regular expression Pattern for the delimiter
charset - opens the file with a specified charset
closure - a closure
Returns:
the last value returned by the closure
See Also:
IOGroovyMethods.splitEachLine
Since:
2.3.0

public static void traverse(Path self, Map<String, Object> options, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Processes each descendant file in this directory and any sub-directories. Processing consists of potentially calling closure passing it the current file (which may be a normal file or subdirectory) and then if a subdirectory was encountered, recursively processing the subdirectory.

The traversal can be adapted by providing various options in the options Map according to the following keys:

type
A FileType enum to determine if normal files or directories or both are processed
preDir
A Closure run before each directory is processed and optionally returning a FileVisitResult value which can be used to control subsequent processing.
preRoot
A boolean indicating that the 'preDir' closure should be applied at the root level
postDir
A Closure run after each directory is processed and optionally returning a FileVisitResult value which can be used to control subsequent processing.
postRoot
A boolean indicating that the 'postDir' closure should be applied at the root level
visitRoot
A boolean indicating that the given closure should be applied for the root dir (not applicable if the 'type' is set to FileType.FILES)
maxDepth
The maximum number of directory levels when recursing (default is -1 which means infinite, set to 0 for no recursion)
filter
A filter to perform on traversed files/directories (using the DefaultGroovyMethods.isCase method). If set, only files/dirs which match are candidates for visiting.
nameFilter
A filter to perform on the name of traversed files/directories (using the DefaultGroovyMethods.isCase method). If set, only files/dirs which match are candidates for visiting. (Must not be set if 'filter' is set)
excludeFilter
A filter to perform on traversed files/directories (using the DefaultGroovyMethods.isCase method). If set, any candidates which match won't be visited.
excludeNameFilter
A filter to perform on the names of traversed files/directories (using the DefaultGroovyMethods.isCase method). If set, any candidates which match won't be visited. (Must not be set if 'excludeFilter' is set)
sort
A Closure which if set causes the files and subdirectories for each directory to be processed in sorted order. Note that even when processing only files, the order of visited subdirectories will be affected by this parameter.
This example prints out file counts and size aggregates for groovy source files within a directory tree:
 def totalSize = 0
 def count = 0
 def sortByTypeThenName = { a, b ->
     a.isFile() != b.isFile() ? a.isFile() <=> b.isFile() : a.name <=> b.name
 }
 rootDir.traverse(
         type         : FILES,
         nameFilter   : ~/.*\.groovy/,
         preDir       : { if (it.name == '.svn') return SKIP_SUBTREE },
         postDir      : { println "Found $count files in $it.name totalling $totalSize bytes"
                         totalSize = 0; count = 0 },
         postRoot     : true
         sort         : sortByTypeThenName
 ) {it -> totalSize += it.size(); count++ }
 
throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory or illegal filter combinations are supplied
Parameters:
self - a Path (that happens to be a folder/directory)
options - a Map of options to alter the traversal behavior
closure - the Closure to invoke on each file/directory and optionally returning a FileVisitResult value which can be used to control subsequent processing
See Also:
DefaultGroovyMethods#sort(java.lang.Iterable, groovy.lang.Closure)
FileVisitResult
FileType
Since:
2.3.0

public static void traverse(Path self, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") Closure closure)

Processes each descendant file in this directory and any sub-directories. Convenience method for traverse(Path, java.util.Map, groovy.lang.Closure) when no options to alter the traversal behavior are required.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory
Parameters:
self - a Path (that happens to be a folder/directory)
closure - the Closure to invoke on each file/directory and optionally returning a FileVisitResult value which can be used to control subsequent processing
See Also:
traverse(Path, java.util.Map, groovy.lang.Closure)
Since:
2.3.0

public static void traverse(Path self, Map<String, Object> options)

Invokes the closure specified with key 'visit' in the options Map for each descendant file in this directory tree. Convenience method for traverse(Path, java.util.Map, groovy.lang.Closure) allowing the 'visit' closure to be included in the options Map rather than as a parameter.

throws:
java.io.FileNotFoundException if the given directory does not exist
throws:
IllegalArgumentException if the provided Path object does not represent a directory or illegal filter combinations are supplied
Parameters:
self - a Path (that happens to be a folder/directory)
options - a Map of options to alter the traversal behavior
See Also:
traverse(Path, java.util.Map, groovy.lang.Closure)
Since:
2.3.0

<T> @Deprecated public static T withCloseable(Closeable self, @ClosureParams(value = SimpleType.class, options = "java.io.Closeable") Closure<T> action)

#deprecated use the variant in IOGroovyMethods

See Also:
IOGroovyMethods.withCloseable
Since:
2.3.0

<T> public static T withDataInputStream(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.DataInputStream") Closure<T> closure)

Create a new DataInputStream for this file and passes it into the closure. This method ensures the stream is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods.withStream
Since:
2.3.0

<T> public static T withDataOutputStream(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.DataOutputStream") Closure<T> closure)

Create a new DataOutputStream for this file and passes it into the closure. This method ensures the stream is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods.withStream
Since:
2.3.0

<T> @SuppressWarnings("unchecked") public static T withInputStream(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.InputStream") Closure<T> closure)

Create a new InputStream for this file and passes it into the closure. This method ensures the stream is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods.withStream
Since:
2.3.0

<T> public static T withObjectInputStream(Path path, @ClosureParams(value = SimpleType.class, options = "java.io.ObjectInputStream") Closure<T> closure)

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

throws:
java.io.IOException if an IOException occurs.
Parameters:
path - a Path
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods.withStream
Since:
2.3.0

<T> public static T withObjectInputStream(Path self, ClassLoader classLoader, @ClosureParams(value = SimpleType.class, options = "java.io.ObjectInputStream") Closure<T> closure)

Create a new ObjectInputStream for this file associated with the given class loader and pass it to the closure. This method ensures the stream is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
classLoader - the class loader to use when loading the class
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods.withStream
Since:
2.3.0

<T> public static T withObjectOutputStream(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.ObjectOutputStream") Closure<T> closure)

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

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods#withStream(java.io.OutputStream, groovy.lang.Closure)
Since:
2.3.0

<T> @SuppressWarnings("unchecked") public static T withOutputStream(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.OutputStream") Closure<T> closure)

Creates a new OutputStream for this file and passes it into the closure. This method ensures the stream is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
See Also:
IOGroovyMethods.withStream
Since:
2.3.0

<T> public static T withPrintWriter(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.PrintWriter") Closure<T> closure)

Create a new PrintWriter for this file which is then passed it into the given closure. This method ensures its the writer is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - the closure to invoke with the PrintWriter
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withPrintWriter(Path self, String charset, @ClosureParams(value = SimpleType.class, options = "java.io.PrintWriter") Closure<T> closure)

Create a new PrintWriter with a specified charset for this file. The writer is passed to the closure, and will be closed before this method returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the charset
closure - the closure to invoke with the PrintWriter
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withReader(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.Reader") Closure<T> closure)

Create a new BufferedReader for this file and then passes it into the closure, ensuring the reader is closed after the closure returns.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a file object
closure - a closure
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withReader(Path self, String charset, @ClosureParams(value = SimpleType.class, options = "java.io.Reader") Closure<T> closure)

Create a new BufferedReader for this file using the specified charset and then passes it into the closure, ensuring the reader is closed after the closure returns. The writer will use the given charset encoding, but will not write a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a file object
charset - the charset for this input stream
closure - a closure
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withWriter(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.Writer") Closure<T> closure)

Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. The writer will not write a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withWriter(Path self, String charset, @ClosureParams(value = SimpleType.class, options = "java.io.Writer") Closure<T> closure)

Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. The writer will use the given charset encoding, but will not write a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the charset used
closure - a closure
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withWriter(Path self, String charset, boolean writeBom, @ClosureParams(value = SimpleType.class, options = "java.io.Writer") Closure<T> closure)

Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns. The writer will use the given charset encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the stream when the writer is created.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the charset used
writeBom - whether to write the BOM
closure - a closure
Returns:
the value returned by the closure
Since:
2.5.0

<T> public static T withWriterAppend(Path self, String charset, @ClosureParams(value = SimpleType.class, options = "java.io.Writer") Closure<T> closure)

Create a new BufferedWriter which will append to this file. The writer is passed to the closure and will be closed before this method returns. The writer will use the given charset encoding, but will not write a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the charset used
closure - a closure
Returns:
the value returned by the closure
Since:
2.3.0

<T> public static T withWriterAppend(Path self, String charset, boolean writeBom, @ClosureParams(value = SimpleType.class, options = "java.io.Writer") Closure<T> closure)

Create a new BufferedWriter which will append to this file. The writer is passed to the closure and will be closed before this method returns. The writer will use the given charset encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias), writeBom is true, and the file doesn't already exist, the requisite byte order mark is written to the stream when the writer is created.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
charset - the charset used
writeBom - whether to write the BOM
closure - a closure
Returns:
the value returned by the closure
Since:
2.5.0

<T> public static T withWriterAppend(Path self, @ClosureParams(value = SimpleType.class, options = "java.io.Writer") Closure<T> closure)

Create a new BufferedWriter for this file in append mode. The writer is passed to the closure and is closed after the closure returns. The writer will not write a BOM.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
closure - a closure
Returns:
the value returned by the closure
Since:
2.3.0

public static void write(Path self, String text)

Write the text to the Path without writing a BOM .

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to write to the Path
Since:
2.3.0

public static void write(Path self, String text, boolean writeBom)

Write the text to the Path. If the default charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias) and writeBom is true, the requisite byte order mark is written to the file before the text.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to write to the Path
writeBom - whether to write the BOM
Since:
2.5.0

public static void write(Path self, String text, String charset)

Write the text to the Path without writing a BOM, using the specified encoding.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to write to the Path
charset - the charset used
Since:
2.3.0

public static void write(Path self, String text, String charset, boolean writeBom)

Write the text to the Path, using the specified encoding. If the given charset is "UTF-16BE" or "UTF-16LE" (or an equivalent alias) and writeBom is true, the requisite byte order mark is written to the file before the text.

throws:
java.io.IOException if an IOException occurs.
Parameters:
self - a Path
text - the text to write to the Path
charset - the charset used
writeBom - whether to write a BOM
Since:
2.5.0

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/org/apache/groovy/nio/extensions/NioExtensions.html