Groovy JDK

java.io
Class File

Method Summary
void append(Object text)
Append the text at the end of the File.
void append(byte[] bytes)
Append bytes to the end of a File.
void append(InputStream stream)
Append binary data to the file.
void append(Object text, String charset)
Append the text at the end of the File, using a specified encoding.
Object asType(Class c)
Converts this File to a Writable or delegates to default Object#asType.
File asWritable()
Converts this File to a Writable.
File asWritable(String encoding)
Allows a file to return a Writable implementation that can output itself to a Writer stream.
boolean deleteDir()
Deletes a directory with all contained files and subdirectories.
void eachByte(Closure closure)
Traverse through each byte of this File
void eachByte(int bufferLen, Closure closure)
Traverse through the bytes of this File, bufferLen bytes at a time.
void eachDir(Closure closure)
Invokes the closure for each subdirectory in this directory, ignoring regular files.
void eachDirMatch(Object nameFilter, Closure closure)
Invokes the closure for each subdirectory whose name (dir.name) matches the given nameFilter in the given directory - calling the Object#isCase method to determine if a match occurs.
void eachDirRecurse(Closure closure)
Invokes the closure for each descendant directory of this directory.
void eachFile(FileType fileType, Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory.
void eachFile(Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory.
void eachFileMatch(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 Object#isCase method to determine if a match occurs.
void eachFileMatch(Object nameFilter, Closure closure)
Invokes the closure for each file whose name (file.name) matches the given nameFilter in the given directory - calling the Object#isCase method to determine if a match occurs.
void eachFileRecurse(FileType fileType, Closure closure)
Invokes the closure for each descendant file in this directory.
void eachFileRecurse(Closure closure)
Invokes the closure for each descendant file in this directory.
Object eachLine(Closure closure)
Iterates through this file line by line.
Object eachLine(String charset, Closure closure)
Iterates through this file line by line.
Object eachLine(int firstLine, Closure closure)
Iterates through this file line by line.
Object eachLine(String charset, int firstLine, Closure closure)
Iterates through this file line by line.
void eachObject(Closure closure)
Iterates through the given file object by object.
Writable filterLine(Closure closure)
Filters the lines of a File and creates a Writable in return to stream the filtered lines.
Writable filterLine(String charset, Closure closure)
Filters the lines of a File and creates a Writable in return to stream the filtered lines.
void filterLine(Writer writer, Closure closure)
Filter the lines from this File, and write them to the given writer based on the given closure predicate.
void filterLine(Writer writer, String charset, Closure closure)
Filter the lines from this File, and write them to the given writer based on the given closure predicate.
byte[] getBytes()
Read the content of the File and returns it as a byte[].
String getText(String charset)
Read the content of the File using the specified encoding and return it as a String.
String getText()
Read the content of the File and returns it as a String.
File leftShift(Object text)
Write the text to the File.
File leftShift(byte[] bytes)
Write bytes to a File.
File leftShift(InputStream data)
Append binary data to the file.
DataInputStream newDataInputStream()
Create a data input stream for this file
DataOutputStream newDataOutputStream()
Creates a new data output stream for this file.
BufferedInputStream newInputStream()
Creates a buffered input stream for this file.
ObjectInputStream newObjectInputStream()
Create an object input stream for this file.
ObjectInputStream newObjectInputStream(ClassLoader classLoader)
Create an object input stream for this file using the given class loader.
ObjectOutputStream newObjectOutputStream()
Create an object output stream for this file.
BufferedOutputStream newOutputStream()
Create a buffered output stream for this file.
PrintWriter newPrintWriter()
Create a new PrintWriter for this file.
PrintWriter newPrintWriter(String charset)
Create a new PrintWriter for this file, using specified charset.
BufferedReader newReader()
Create a buffered reader for this file.
BufferedReader newReader(String charset)
Create a buffered reader for this file, using the specified charset as the encoding.
BufferedWriter newWriter()
Create a buffered writer for this file.
BufferedWriter newWriter(boolean append)
Creates a buffered writer for this file, optionally appending to the existing file content.
BufferedWriter newWriter(String charset, boolean append)
Helper method to create a buffered writer for a file.
BufferedWriter newWriter(String charset)
Creates a buffered writer for this file, writing data using the given encoding.
byte[] readBytes()
Reads the content of the file into a byte array.
List readLines()
Reads the file into a list of Strings, with one item for each line.
List readLines(String charset)
Reads the file into a list of Strings, with one item for each line.
boolean renameTo(String newPathName)
Renames the file.
void setBytes(byte[] bytes)
Write the bytes from the byte array to the File.
void setText(String text)
Synonym for write(text) allowing file.text = 'foo'.
void setText(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'
long size()
Provide the standard Groovy size() method for File.
Object splitEachLine(String regex, Closure closure)
Iterates through this file line by line, splitting each line using the given regex separator.
Object splitEachLine(Pattern pattern, Closure closure)
Iterates through this file line by line, splitting each line using the given separator Pattern.
Object splitEachLine(String regex, String charset, Closure closure)
Iterates through this file line by line, splitting each line using the given regex separator.
Object splitEachLine(Pattern pattern, String charset, Closure closure)
Iterates through this file line by line, splitting each line using the given regex separator Pattern.
void traverse(Map options, Closure closure)
Invokes closure for each descendant file in this directory tree.
void traverse(Closure closure)
Invokes the closure for each descendant file in this directory tree.
void traverse(Map options)
Invokes the closure specified with key 'visit' in the options Map for each descendant file in this directory tree.
Object withDataInputStream(Closure closure)
Create a new DataInputStream for this file and passes it into the closure.
Object withDataOutputStream(Closure closure)
Create a new DataOutputStream for this file and passes it into the closure.
Object withInputStream(Closure closure)
Create a new InputStream for this file and passes it into the closure.
Object withObjectInputStream(Closure closure)
Create a new ObjectInputStream for this file and pass it to the closure.
Object withObjectInputStream(ClassLoader classLoader, Closure closure)
Create a new ObjectInputStream for this file associated with the given class loader and pass it to the closure.
Object withObjectOutputStream(Closure closure)
Create a new ObjectOutputStream for this file and then pass it to the closure.
Object withOutputStream(Closure closure)
Creates a new OutputStream for this file and passes it into the closure.
Object withPrintWriter(Closure closure)
Create a new PrintWriter for this file which is then passed it into the given closure.
Object withPrintWriter(String charset, Closure closure)
Create a new PrintWriter with a specified charset for this file.
Object withReader(Closure closure)
Create a new BufferedReader for this file and then passes it into the closure, ensuring the reader is closed after the closure returns.
Object withReader(String charset, Closure 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.
Object withWriter(Closure 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.
Object withWriter(String charset, Closure 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.
Object withWriterAppend(String charset, Closure closure)
Create a new BufferedWriter which will append to this file.
Object withWriterAppend(Closure closure)
Create a new BufferedWriter for this file in append mode.
void write(String text)
Write the text to the File.
void write(String text, String charset)
Write the text to the File, using the specified encoding.
 
Method Detail

append

public void append(Object text)
 
Append the text at the end of the File.
Parameters:
text - the text to append at the end of the File.
Since:
1.0

append

public void append(byte[] bytes)
 
Append bytes to the end of a File.
Parameters:
bytes - the byte array to append to the end of the File.
Since:
1.5.1

append

public void append(InputStream stream)
 
Append binary data to the file. It will not be interpreted as text.
Parameters:
stream - stream to read data from..
Since:
1.5.0

append

public void append(Object text, String charset)
 
Append the text at the end of the File, using a specified encoding.
Parameters:
text - the text to append at the end of the File.
charset - the charset used.
Since:
1.0

asType

public Object asType(Class c)
 
Converts this File to a Writable or delegates to default Object#asType.
Parameters:
c - the desired class.
Returns:
the converted object
Since:
1.0

asWritable

public File asWritable()
 
Converts this File to a Writable.
Returns:
a File which wraps the input file and which implements Writable
Since:
1.0

asWritable

public File asWritable(String encoding)
 
Allows a file to return a Writable implementation that can output itself to a Writer stream.
Parameters:
encoding - the encoding to be used when reading the file's contents.
Returns:
File which wraps the input file and which implements Writable
Since:
1.0

deleteDir

public boolean deleteDir()
 
Deletes a directory with all contained files and subdirectories.

The method returns

Returns:
true if the file doesn't exist or deletion was successful
Since:
1.6.0

eachByte

public void eachByte(Closure closure)
 
Traverse through each byte of this File
Parameters:
closure - a closure.
Since:
1.0
See:
InputStream#eachByte.

eachByte

public void eachByte(int bufferLen, Closure closure)
 
Traverse through the bytes of this File, bufferLen bytes at a time.
Parameters:
bufferLen - the length of the buffer to use..
closure - a 2 parameter closure which is passed the byte[] and a number of bytes successfully read..
Since:
1.7.4
See:
InputStream#eachByte.

eachDir

public void eachDir(Closure closure)
 
Invokes the closure for each subdirectory in this directory, ignoring regular files.
Parameters:
closure - a closure (first parameter is the subdirectory file).
Since:
1.0
See:
File#listFiles.
File#eachFile.

eachDirMatch

public void eachDirMatch(Object nameFilter, Closure closure)
 
Invokes the closure for each subdirectory whose name (dir.name) matches the given nameFilter in the given directory - calling the Object#isCase 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.
Parameters:
nameFilter - the nameFilter to perform on the name of the directory (using the Object#isCase method).
closure - the closure to invoke.
Since:
1.5.0
See:
File#eachFileMatch.

eachDirRecurse

public void eachDirRecurse(Closure closure)
 
Invokes the closure for each descendant directory of this directory. Sub-directories are recursively searched in a depth-first fashion. Only subdirectories are passed to the closure; regular files are ignored.
Parameters:
closure - a closure.
Since:
1.5.0
See:
File#eachFileRecurse.

eachFile

public void eachFile(FileType fileType, 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.
Parameters:
fileType - if normal files or directories or both should be processed.
closure - the closure to invoke.
Since:
1.7.1

eachFile

public void eachFile(Closure closure)
 
Invokes the closure for each 'child' file in this 'parent' folder/directory. Both regular files and subfolders/subdirectories are processed.
Parameters:
closure - a closure (first parameter is the 'child' file).
Since:
1.5.0
See:
File#listFiles.
File#eachFile.

eachFileMatch

public void eachFileMatch(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 Object#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/, { File bak -> bak.delete() }

// print out files > 4K in size from baseDir
baseDir.eachFileMatch FILES, { new File(baseDir, it).size() > 4096 }, { println "$it.name ${it.size()}" }
Parameters:
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 Object#isCase method).
closure - the closure to invoke.
Since:
1.7.1

eachFileMatch

public void eachFileMatch(Object nameFilter, Closure closure)
 
Invokes the closure for each file whose name (file.name) matches the given nameFilter in the given directory - calling the Object#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.
Parameters:
nameFilter - the nameFilter to perform on the name of the file (using the Object#isCase method).
closure - the closure to invoke.
Since:
1.5.0
See:
File#eachFileMatch.

eachFileRecurse

public void eachFileRecurse(FileType fileType, Closure closure)
 
Invokes the closure for each descendant file in this directory. Sub-directories are recursively searched in a depth-first fashion. Both regular files and subdirectories may be passed to the closure depending on the value of fileType.
Parameters:
fileType - if normal files or directories or both should be processed.
closure - the closure to invoke on each file.
Since:
1.7.1

eachFileRecurse

public void eachFileRecurse(Closure closure)
 
Invokes the closure for each descendant file in this directory. Sub-directories are recursively searched in a depth-first fashion. Both regular files and subdirectories are passed to the closure.
Parameters:
closure - a closure.
Since:
1.0
See:
File#eachFileRecurse.

eachLine

public Object eachLine(Closure 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.
Parameters:
closure - a closure (arg 1 is line, optional arg 2 is line number starting at line 1).
Returns:
the last value returned by the closure
Since:
1.5.5
See:
File#eachLine.

eachLine

public Object eachLine(String charset, Closure 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.
Parameters:
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
Since:
1.6.8
See:
File#eachLine.

eachLine

public Object eachLine(int firstLine, Closure 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.
Parameters:
firstLine - the line number value used for the first line (default is 1, set to 0 to start counting from 0).
closure - a closure (arg 1 is line, optional arg 2 is line number).
Returns:
the last value returned by the closure
Since:
1.5.7
See:
Reader#eachLine.

eachLine

public Object eachLine(String charset, int firstLine, Closure 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.
Parameters:
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
Since:
1.6.8
See:
Reader#eachLine.

eachObject

public void eachObject(Closure closure)
 
Iterates through the given file object by object.
Parameters:
closure - a closure.
Since:
1.0
See:
ObjectInputStream#eachObject.

filterLine

public Writable filterLine(Closure closure)
 
Filters the lines of a File and creates a Writable in return to stream the filtered lines.
Parameters:
closure - a closure which returns a boolean indicating to filter the line or not.
Returns:
a Writable closure
Since:
1.0
See:
Reader#filterLine.

filterLine

public Writable filterLine(String charset, Closure closure)
 
Filters the lines of a File and creates a Writable in return to stream the filtered lines.
Parameters:
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
Since:
1.6.8
See:
Reader#filterLine.

filterLine

public void filterLine(Writer writer, Closure closure)
 
Filter the lines from this File, and write them to the given writer based on the given closure predicate.
Parameters:
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..
Since:
1.0
See:
Reader#filterLine.

filterLine

public void filterLine(Writer writer, String charset, Closure closure)
 
Filter the lines from this File, and write them to the given writer based on the given closure predicate.
Parameters:
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..
Since:
1.6.8
See:
Reader#filterLine.

getBytes

public byte[] getBytes()
 
Read the content of the File and returns it as a byte[].
Returns:
a String containing the content of the file
Since:
1.7.1

getText

public String getText(String charset)
 
Read the content of the File using the specified encoding and return it as a String.
Parameters:
charset - the charset used to read the content of the file.
Returns:
a String containing the content of the file
Since:
1.0

getText

public String getText()
 
Read the content of the File and returns it as a String.
Returns:
a String containing the content of the file
Since:
1.0

leftShift

public File leftShift(Object text)
 
Write the text to the File.
Parameters:
text - the text to write to the File.
Returns:
the original file
Since:
1.0

leftShift

public File leftShift(byte[] bytes)
 
Write bytes to a File.
Parameters:
bytes - the byte array to append to the end of the File.
Returns:
the original file
Since:
1.5.0

leftShift

public File leftShift(InputStream data)
 
Append binary data to the file. See File#append
Parameters:
data - an InputStream of data to write to the file.
Returns:
the file
Since:
1.5.0

newDataInputStream

public DataInputStream newDataInputStream()
 
Create a data input stream for this file
Returns:
a DataInputStream of the file
Since:
1.5.0

newDataOutputStream

public DataOutputStream newDataOutputStream()
 
Creates a new data output stream for this file.
Returns:
the created DataOutputStream
Since:
1.5.0

newInputStream

public BufferedInputStream newInputStream()
 
Creates a buffered input stream for this file.
Returns:
a BufferedInputStream of the file
Since:
1.0

newObjectInputStream

public ObjectInputStream newObjectInputStream()
 
Create an object input stream for this file.
Returns:
an object input stream
Since:
1.5.0

newObjectInputStream

public ObjectInputStream newObjectInputStream(ClassLoader classLoader)
 
Create an object input stream for this file using the given class loader.
Parameters:
classLoader - the class loader to use when loading the class.
Returns:
an object input stream
Since:
1.5.0

newObjectOutputStream

public ObjectOutputStream newObjectOutputStream()
 
Create an object output stream for this file.
Returns:
an object output stream
Since:
1.5.0

newOutputStream

public BufferedOutputStream newOutputStream()
 
Create a buffered output stream for this file.
Returns:
the created OutputStream
Since:
1.0

newPrintWriter

public PrintWriter newPrintWriter()
 
Create a new PrintWriter for this file.
Returns:
the created PrintWriter
Since:
1.0

newPrintWriter

public PrintWriter newPrintWriter(String charset)
 
Create a new PrintWriter for this file, using specified charset.
Parameters:
charset - the charset.
Returns:
a PrintWriter
Since:
1.0

newReader

public BufferedReader newReader()
 
Create a buffered reader for this file.
Returns:
a BufferedReader
Since:
1.0

newReader

public BufferedReader newReader(String charset)
 
Create a buffered reader for this file, using the specified charset as the encoding.
Parameters:
charset - the charset for this File.
Returns:
a BufferedReader
Since:
1.0

newWriter

public BufferedWriter newWriter()
 
Create a buffered writer for this file.
Returns:
a BufferedWriter
Since:
1.0

newWriter

public BufferedWriter newWriter(boolean append)
 
Creates a buffered writer for this file, optionally appending to the existing file content.
Parameters:
append - true if data should be appended to the file.
Returns:
a BufferedWriter
Since:
1.0

newWriter

public BufferedWriter newWriter(String charset, boolean append)
 
Helper method to create a buffered writer for a file. If the given charset is "UTF-16BE" or "UTF-16LE", the requisite byte order mark is written to the stream before the writer is returned.
Parameters:
charset - the name of the encoding used to write in this file.
append - true if in append mode.
Returns:
a BufferedWriter
Since:
1.0

newWriter

public BufferedWriter newWriter(String charset)
 
Creates a buffered writer for this file, writing data using the given encoding.
Parameters:
charset - the name of the encoding used to write in this file.
Returns:
a BufferedWriter
Since:
1.0

readBytes

public byte[] readBytes()
 
Reads the content of the file into a byte array.
Returns:
a byte array with the contents of the file.
Since:
1.0

readLines

public List readLines()
 
Reads the file into a list of Strings, with one item for each line.
Returns:
a List of lines
Since:
1.0
See:
Reader#readLines.

readLines

public List readLines(String charset)
 
Reads the file into a list of Strings, with one item for each line.
Parameters:
charset - opens the file with a specified charset.
Returns:
a List of lines
Since:
1.6.8
See:
Reader#readLines.

renameTo

public boolean renameTo(String newPathName)
 
Renames the file. It's a shortcut for File#renameTo
Parameters:
newPathName - The new pathname for the named file.
Returns:
true if and only if the renaming succeeded; false otherwise
Since:
1.7.4

setBytes

public void setBytes(byte[] bytes)
 
Write the bytes from the byte array to the File.
Parameters:
bytes - the byte[] to write to the file.
Since:
1.7.1

setText

public void setText(String text)
 
Synonym for write(text) allowing file.text = 'foo'.
Parameters:
text - the text to write to the File.
Since:
1.5.1
See:
File#write.

setText

public void setText(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'
Parameters:
charset - The charset used when writing to the file.
text - The text to write to the File.
Since:
1.7.3
See:
File#write.

size

public long size()
 
Provide the standard Groovy size() method for File.
Returns:
the file's size (length)
Since:
1.5.0

splitEachLine

public Object splitEachLine(String regex, Closure 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.
Parameters:
regex - the delimiting regular expression.
closure - a closure.
Returns:
the last value returned by the closure
Since:
1.5.5
See:
Reader#splitEachLine.

splitEachLine

public Object splitEachLine(Pattern pattern, Closure 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.
Parameters:
pattern - the regular expression Pattern for the delimiter.
closure - a closure.
Returns:
the last value returned by the closure
Since:
1.6.8
See:
Reader#splitEachLine.

splitEachLine

public Object splitEachLine(String regex, String charset, Closure 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.
Parameters:
regex - the delimiting regular expression.
charset - opens the file with a specified charset.
closure - a closure.
Returns:
the last value returned by the closure
Since:
1.6.8
See:
Reader#splitEachLine.

splitEachLine

public Object splitEachLine(Pattern pattern, String charset, Closure 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.
Parameters:
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
Since:
1.6.8
See:
Reader#splitEachLine.

traverse

public void traverse(Map options, Closure closure)
 
Invokes closure for each descendant file in this directory tree. Sub-directories are recursively traversed as found. 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 Object#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 Object#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 Object#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 Object#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++ }
Parameters:
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.
Since:
1.7.1
See:
Collection#sort.
FileVisitResult.
FileType.

traverse

public void traverse(Closure closure)
 
Invokes the closure for each descendant file in this directory tree. Sub-directories are recursively traversed in a depth-first fashion. Convenience method for File#traverse when no options to alter the traversal behavior are required.
Parameters:
closure - the Closure to invoke on each file/directory and optionally returning a FileVisitResult value which can be used to control subsequent processing.
Since:
1.7.1
See:
File#traverse.

traverse

public void traverse(Map options)
 
Invokes the closure specified with key 'visit' in the options Map for each descendant file in this directory tree. Convenience method for File#traverse allowing the 'visit' closure to be included in the options Map rather than as a parameter.
Parameters:
options - a Map of options to alter the traversal behavior.
Since:
1.7.1
See:
File#traverse.

withDataInputStream

public Object withDataInputStream(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2
See:
InputStream#withStream.

withDataOutputStream

public Object withDataOutputStream(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2
See:
OutputStream#withStream.

withInputStream

public Object withInputStream(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2
See:
InputStream#withStream.

withObjectInputStream

public Object withObjectInputStream(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2
See:
InputStream#withStream.

withObjectInputStream

public Object withObjectInputStream(ClassLoader classLoader, Closure 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.
Parameters:
classLoader - the class loader to use when loading the class.
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2
See:
InputStream#withStream.

withObjectOutputStream

public Object withObjectOutputStream(Closure closure)
 
Create a new ObjectOutputStream for this file and then pass it to the closure. This method ensures the stream is closed after the closure returns.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.0
See:
OutputStream#withStream.

withOutputStream

public Object withOutputStream(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2
See:
OutputStream#withStream.

withPrintWriter

public Object withPrintWriter(Closure 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.
Parameters:
closure - the closure to invoke with the PrintWriter.
Returns:
the value returned by the closure
Since:
1.5.2

withPrintWriter

public Object withPrintWriter(String charset, Closure 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.
Parameters:
charset - the charset.
closure - the closure to invoke with the PrintWriter.
Returns:
the value returned by the closure
Since:
1.5.2

withReader

public Object withReader(Closure closure)
 
Create a new BufferedReader for this file and then passes it into the closure, ensuring the reader is closed after the closure returns.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2

withReader

public Object withReader(String charset, Closure 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.
Parameters:
charset - the charset for this input stream.
closure - a closure.
Returns:
the value returned by the closure
Since:
1.6.0

withWriter

public Object withWriter(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2

withWriter

public Object withWriter(String charset, Closure 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.
Parameters:
charset - the charset used.
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2

withWriterAppend

public Object withWriterAppend(String charset, Closure 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.
Parameters:
charset - the charset used.
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2

withWriterAppend

public Object withWriterAppend(Closure 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.
Parameters:
closure - a closure.
Returns:
the value returned by the closure
Since:
1.5.2

write

public void write(String text)
 
Write the text to the File.
Parameters:
text - the text to write to the File.
Since:
1.0

write

public void write(String text, String charset)
 
Write the text to the File, using the specified encoding.
Parameters:
text - the text to write to the File.
charset - the charset used.
Since:
1.0

Groovy JDK