public class NioGroovyMethods extends DefaultGroovyMethodsSupport
public static T eachLine(InputStream self, Closure c)
provides a eachLine(Closure c)
method for InputStream
.
NOTE: While this class contains many 'public' static methods, it is
primarily regarded as an internal class (its internal package name
suggests this also). We value backwards compatibility of these
methods when used within Groovy but value less backwards compatibility
at the Java method call level. I.e. future versions of Groovy may
remove or move a method call in this file but would normally
aim to keep the method available from within Groovy.Constructor and Description |
---|
NioGroovyMethods() |
Modifier and Type | Method and Description |
---|---|
static void |
append(Path self,
byte[] bytes)
Append bytes to the end of a Path.
|
static void |
append(Path self,
InputStream stream)
Append binary data to the file.
|
static void |
append(Path self,
Object text)
Append the text at the end of the Path.
|
static void |
append(Path self,
Object text,
String charset)
Append the text at the end of the Path, using a specified encoding.
|
static void |
append(Path file,
Reader reader)
Append the text supplied by the Writer at the end of the File.
|
static void |
append(Path file,
Reader reader,
String charset)
Append the text supplied by the Reader at the end of the File, using a specified encoding.
|
static void |
append(Path file,
Writer writer)
Append the text supplied by the Writer at the end of the File.
|
static void |
append(Path file,
Writer writer,
String charset)
Append the text supplied by the Writer at the end of the File, using a specified encoding.
|
static <T> T |
asType(Path path,
Class<T> c)
Converts this Path to a
Writable or delegates to default
DefaultGroovyMethods.asType(Object, Class) . |
static Path |
asWritable(Path self)
Converts this Path to a
Writable . |
static Path |
asWritable(Path self,
String encoding)
Allows a file to return a Writable implementation that can output itself
to a Writer stream.
|
static boolean |
deleteDir(Path self)
Deletes a directory with all contained files and subdirectories.
|
static void |
eachByte(Path self,
Closure closure)
Traverse through each byte of this Path
|
static void |
eachByte(Path self,
int bufferLen,
Closure closure)
Traverse through the bytes of this Path, bufferLen bytes at a time.
|
static void |
eachDir(Path self,
Closure closure)
Invokes the closure for each subdirectory in this directory,
ignoring regular files.
|
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. |
static void |
eachDirRecurse(Path self,
Closure closure)
Invokes the closure for each descendant directory of this directory.
|
static void |
eachFile(Path self,
Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory.
|
static void |
eachFile(Path self,
FileType fileType,
Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory.
|
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(Object, Object) method to determine if a match occurs. |
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(Object, Object) method to determine if a match occurs. |
static void |
eachFileRecurse(Path self,
Closure closure)
Invokes the closure for each descendant file in this directory.
|
static void |
eachFileRecurse(Path self,
FileType fileType,
Closure closure)
Invokes the closure for each descendant file in this directory.
|
static <T> T |
eachLine(Path self,
Closure<T> closure)
Iterates through this path line by line.
|
static <T> T |
eachLine(Path self,
int firstLine,
Closure<T> closure)
Iterates through this file line by line.
|
static <T> T |
eachLine(Path self,
String charset,
Closure<T> closure)
Iterates through this file line by line.
|
static <T> T |
eachLine(Path self,
String charset,
int firstLine,
Closure<T> closure)
Iterates through this file line by line.
|
static void |
eachObject(Path self,
Closure closure)
Iterates through the given file object by object.
|
static Writable |
filterLine(Path self,
Closure closure)
Filters the lines of a Path and creates a Writable in return to
stream the filtered lines.
|
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.
|
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.
|
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.
|
static byte[] |
getBytes(Path self)
Read the content of the Path and returns it as a byte[].
|
static String |
getText(Path self)
Read the content of the Path and returns it as a String.
|
static String |
getText(Path self,
String charset)
Read the content of the Path using the specified encoding and return it
as a String.
|
static Path |
leftShift(Path self,
byte[] bytes)
Write bytes to a Path.
|
static Path |
leftShift(Path path,
InputStream data)
Append binary data to the file.
|
static Path |
leftShift(Path self,
Object text)
Write the text to the Path.
|
static DataInputStream |
newDataInputStream(Path self)
Create a data input stream for this file
|
static DataOutputStream |
newDataOutputStream(Path self)
Creates a new data output stream for this file.
|
static BufferedInputStream |
newInputStream(Path self)
Creates a buffered input stream for this file.
|
static ObjectInputStream |
newObjectInputStream(Path self)
Create an object input stream for this file.
|
static ObjectInputStream |
newObjectInputStream(Path self,
ClassLoader classLoader)
Create an object input stream for this path using the given class loader.
|
static ObjectOutputStream |
newObjectOutputStream(Path self)
Create an object output stream for this path.
|
static BufferedOutputStream |
newOutputStream(Path self)
Create a buffered output stream for this file.
|
static PrintWriter |
newPrintWriter(Path self)
Create a new PrintWriter for this file.
|
static PrintWriter |
newPrintWriter(Path self,
String charset)
Create a new PrintWriter for this file, using specified
charset.
|
static BufferedReader |
newReader(Path self)
Create a buffered reader for this file.
|
static BufferedReader |
newReader(Path self,
String charset)
Create a buffered reader for this file, using the specified
charset as the encoding.
|
static BufferedWriter |
newWriter(Path self)
Create a buffered writer for this file.
|
static BufferedWriter |
newWriter(Path self,
boolean append)
Creates a buffered writer for this file, optionally appending to the
existing file content.
|
static BufferedWriter |
newWriter(Path self,
String charset)
Creates a buffered writer for this file, writing data using the given
encoding.
|
static BufferedWriter |
newWriter(Path self,
String charset,
boolean append)
Helper method to create a buffered writer for a file.
|
static byte[] |
readBytes(Path self)
Reads the content of the file into a byte array.
|
static List<String> |
readLines(Path self)
Reads the file into a list of Strings, with one item for each line.
|
static List<String> |
readLines(Path self,
String charset)
Reads the file into a list of Strings, with one item for each line.
|
static boolean |
renameTo(Path self,
String newPathName)
Renames a file.
|
static boolean |
renameTo(Path self,
URI newPathName)
Renames a file.
|
static void |
setBytes(Path self,
byte[] bytes)
Write the bytes from the byte array to the Path.
|
static void |
setText(Path self,
String text)
Synonym for write(text) allowing file.text = 'foo'.
|
static void |
setText(Path self,
String text,
String charset)
Synonym for write(text, charset) allowing:
|
static long |
size(Path self)
Provide the standard Groovy
size() method for Path . |
static <T> T |
splitEachLine(Path self,
Pattern pattern,
Closure<T> closure)
Iterates through this file line by line, splitting each line using
the given separator Pattern.
|
static <T> 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.
|
static <T> T |
splitEachLine(Path self,
String regex,
Closure<T> closure)
Iterates through this file line by line, splitting each line using
the given regex separator.
|
static <T> 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.
|
static void |
traverse(Path self,
Closure closure)
Invokes the closure for each descendant file in this directory tree.
|
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.
|
static void |
traverse(Path self,
Map<String,Object> options,
Closure closure)
Invokes
closure for each descendant file in this directory tree. |
static <T> T |
withCloseable(Closeable self,
Closure<T> action)
Allows this closeable to be used within the closure, ensuring that it
is closed once the closure has been executed and before this method returns.
|
static <T> T |
withDataInputStream(Path self,
Closure<T> closure)
Create a new DataInputStream for this file and passes it into the closure.
|
static <T> T |
withDataOutputStream(Path self,
Closure<T> closure)
Create a new DataOutputStream for this file and passes it into the closure.
|
static Object |
withInputStream(Path self,
Closure closure)
Create a new InputStream for this file and passes it into the closure.
|
static <T> 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.
|
static <T> T |
withObjectInputStream(Path path,
Closure<T> closure)
Create a new ObjectInputStream for this file and pass it to the closure.
|
static <T> T |
withObjectOutputStream(Path self,
Closure<T> closure)
Create a new ObjectOutputStream for this path and then pass it to the
closure.
|
static Object |
withOutputStream(Path self,
Closure closure)
Creates a new OutputStream for this file and passes it into the closure.
|
static <T> T |
withPrintWriter(Path self,
Closure<T> closure)
Create a new PrintWriter for this file which is then
passed it into the given closure.
|
static <T> T |
withPrintWriter(Path self,
String charset,
Closure<T> closure)
Create a new PrintWriter with a specified charset for
this file.
|
static <T> 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.
|
static <T> 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.
|
static <T> 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.
|
static <T> 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.
|
static <T> T |
withWriterAppend(Path self,
Closure<T> closure)
Create a new BufferedWriter for this file in append mode.
|
static <T> T |
withWriterAppend(Path self,
String charset,
Closure<T> closure)
Create a new BufferedWriter which will append to this
file.
|
static void |
write(Path self,
String text)
Write the text to the Path.
|
static void |
write(Path self,
String text,
String charset)
Write the text to the Path, using the specified encoding.
|
cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarSet, normaliseIndex, sameType, subListBorders, subListBorders
public static long size(Path self) throws IOException
size()
method for Path
.self
- a Path
objectIOException
public static ObjectOutputStream newObjectOutputStream(Path self) throws IOException
self
- a Path
objectIOException
- if an IOException occurs.public static <T> T withObjectOutputStream(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.OutputStream, groovy.lang.Closure)
public static ObjectInputStream newObjectInputStream(Path self) throws IOException
self
- a Path
objectIOException
- if an IOException occurs.public static ObjectInputStream newObjectInputStream(Path self, ClassLoader classLoader) throws IOException
self
- a Path
objectclassLoader
- the class loader to use when loading the classIOException
- if an IOException occurs.public static void eachObject(Path self, Closure closure) throws IOException, ClassNotFoundException
self
- a Path
objectclosure
- a closureIOException
- if an IOException occurs.ClassNotFoundException
- if the class is not found.IOGroovyMethods.eachObject(java.io.ObjectInputStream, groovy.lang.Closure)
public static <T> T withObjectInputStream(Path path, Closure<T> closure) throws IOException
path
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.InputStream, groovy.lang.Closure)
public static <T> T withObjectInputStream(Path self, ClassLoader classLoader, Closure<T> closure) throws IOException
self
- a PathclassLoader
- the class loader to use when loading the classclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.InputStream, groovy.lang.Closure)
public static <T> T eachLine(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)IOException
- if an IOException occurs.eachLine(Path, int, groovy.lang.Closure)
public static <T> T eachLine(Path self, String charset, Closure<T> closure) throws IOException
self
- a Pathcharset
- opens the file with a specified charsetclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)IOException
- if an IOException occurs.eachLine(Path, String, int, groovy.lang.Closure)
public static <T> T eachLine(Path self, int firstLine, Closure<T> closure) throws IOException
self
- a PathfirstLine
- 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)IOException
- if an IOException occurs.IOGroovyMethods.eachLine(java.io.Reader, int, groovy.lang.Closure)
public static <T> T eachLine(Path self, String charset, int firstLine, Closure<T> closure) throws IOException
self
- a Pathcharset
- opens the file with a specified charsetfirstLine
- the line number value used for the first line (default is 1, set to 0 to start counting from 0)closure
- a closure (arg 1 is line, optional arg 2 is line number)IOException
- if an IOException occurs.IOGroovyMethods.eachLine(java.io.Reader, int, groovy.lang.Closure)
public static <T> T splitEachLine(Path self, String regex, Closure<T> closure) throws IOException
self
- a Pathregex
- the delimiting regular expressionclosure
- a closureIOException
- if an IOException occurs.PatternSyntaxException
- if the regular expression's syntax is invalidIOGroovyMethods.splitEachLine(java.io.Reader, String, groovy.lang.Closure)
public static <T> T splitEachLine(Path self, Pattern pattern, Closure<T> closure) throws IOException
self
- a Pathpattern
- the regular expression Pattern for the delimiterclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.splitEachLine(java.io.Reader, java.util.regex.Pattern, groovy.lang.Closure)
public static <T> T splitEachLine(Path self, String regex, String charset, Closure<T> closure) throws IOException
self
- a Pathregex
- the delimiting regular expressioncharset
- opens the file with a specified charsetclosure
- a closureIOException
- if an IOException occurs.PatternSyntaxException
- if the regular expression's syntax is invalidIOGroovyMethods.splitEachLine(java.io.Reader, String, groovy.lang.Closure)
public static <T> T splitEachLine(Path self, Pattern pattern, String charset, Closure<T> closure) throws IOException
self
- a Pathpattern
- the regular expression Pattern for the delimitercharset
- opens the file with a specified charsetclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.splitEachLine(java.io.Reader, java.util.regex.Pattern, groovy.lang.Closure)
public static List<String> readLines(Path self) throws IOException
self
- a PathIOException
- if an IOException occurs.IOGroovyMethods.readLines(java.io.Reader)
public static List<String> readLines(Path self, String charset) throws IOException
self
- a Pathcharset
- opens the file with a specified charsetIOException
- if an IOException occurs.IOGroovyMethods.readLines(java.io.Reader)
public static String getText(Path self, String charset) throws IOException
self
- the file whose content we want to readcharset
- the charset used to read the content of the fileIOException
- if an IOException occurs.public static String getText(Path self) throws IOException
self
- the file whose content we want to readIOException
- if an IOException occurs.public static byte[] getBytes(Path self) throws IOException
self
- the file whose content we want to readIOException
- if an IOException occurs.public static void setBytes(Path self, byte[] bytes) throws IOException
self
- the file to write tobytes
- the byte[] to write to the fileIOException
- if an IOException occurs.public static void write(Path self, String text) throws IOException
self
- a Pathtext
- the text to write to the PathIOException
- if an IOException occurs.public static void setText(Path self, String text) throws IOException
self
- a Pathtext
- the text to write to the PathIOException
- if an IOException occurs.write(Path, String)
public static void setText(Path self, String text, String charset) throws IOException
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'
self
- A Pathcharset
- The charset used when writing to the filetext
- The text to write to the PathIOException
- if an IOException occurs.write(Path, String, String)
public static Path leftShift(Path self, Object text) throws IOException
self
- a Pathtext
- the text to write to the PathIOException
- if an IOException occurs.public static Path leftShift(Path self, byte[] bytes) throws IOException
self
- a Pathbytes
- the byte array to append to the end of the PathIOException
- if an IOException occurs.public static Path leftShift(Path path, InputStream data) throws IOException
append(Path, java.io.InputStream)
path
- a Pathdata
- an InputStream of data to write to the fileIOException
- if an IOException occurs.public static void write(Path self, String text, String charset) throws IOException
self
- a Pathtext
- the text to write to the Pathcharset
- the charset usedIOException
- if an IOException occurs.public static void append(Path self, Object text) throws IOException
self
- a Pathtext
- the text to append at the end of the PathIOException
- if an IOException occurs.public static void append(Path file, Reader reader) throws IOException
file
- a Pathreader
- the Reader supplying the text to append at the end of the FileIOException
- if an IOException occurs.public static void append(Path file, Writer writer) throws IOException
file
- a Filewriter
- the Writer supplying the text to append at the end of the FileIOException
- if an IOException occurs.public static void append(Path self, byte[] bytes) throws IOException
self
- a Pathbytes
- the byte array to append to the end of the PathIOException
- if an IOException occurs.public static void append(Path self, InputStream stream) throws IOException
self
- a Pathstream
- stream to read data from.IOException
- if an IOException occurs.public static void append(Path self, Object text, String charset) throws IOException
self
- a Pathtext
- the text to append at the end of the Pathcharset
- the charset usedIOException
- if an IOException occurs.public static void append(Path file, Writer writer, String charset) throws IOException
file
- a Filewriter
- the Writer supplying the text to append at the end of the Filecharset
- the charset usedIOException
- if an IOException occurs.public static void append(Path file, Reader reader, String charset) throws IOException
file
- a Filereader
- the Reader supplying the text to append at the end of the Filecharset
- the charset usedIOException
- if an IOException occurs.public static void eachFile(Path self, FileType fileType, Closure closure) throws IOException
self
- a file objectfileType
- if normal files or directories or both should be processedclosure
- the closure to invokeFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
public static void eachFile(Path self, Closure closure) throws IOException
self
- a Path (that happens to be a folder/directory)closure
- a closure (first parameter is the 'child' file)FileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
eachFile(Path, groovy.io.FileType, groovy.lang.Closure)
public static void eachDir(Path self, Closure closure) throws IOException
self
- a Path (that happens to be a folder/directory)closure
- a closure (first parameter is the subdirectory file)FileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
eachFile(Path, groovy.io.FileType, groovy.lang.Closure)
public static void eachFileRecurse(Path self, FileType fileType, Closure closure) throws IOException
self
- a file objectfileType
- if normal files or directories or both should be processedclosure
- the closure to invoke on each fileFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
public static void traverse(Path self, Map<String,Object> options, Closure closure) throws IOException
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:FileType
enum to determine if normal files or directories or both are processedClosure
run before each directory is processed and optionally returning a FileVisitResult
value
which can be used to control subsequent processing.Closure
run after each directory is processed and optionally returning a FileVisitResult
value
which can be used to control subsequent processing.FileType.FILES
)DefaultGroovyMethods.isCase(Object, Object)
method). If set,
only files/dirs which match are candidates for visiting.DefaultGroovyMethods.isCase(Object, Object)
method). If set,
only files/dirs which match are candidates for visiting. (Must not be set if 'filter' is set)DefaultGroovyMethods.isCase(Object, Object)
method).
If set, any candidates which match won't be visited.DefaultGroovyMethods.isCase(Object, Object)
method).
If set, any candidates which match won't be visited. (Must not be set if 'excludeFilter' is set)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.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++ }
self
- a Pathoptions
- a Map of options to alter the traversal behaviorclosure
- the Closure to invoke on each file/directory and optionally returning a FileVisitResult
value
which can be used to control subsequent processingFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directory or illegal filter combinations are suppliedIOException
DefaultGroovyMethods.sort(java.util.Collection, groovy.lang.Closure)
,
FileVisitResult
,
FileType
public static void traverse(Path self, Closure closure) throws IOException
traverse(Path, java.util.Map, groovy.lang.Closure)
when
no options to alter the traversal behavior are required.self
- a Pathclosure
- the Closure to invoke on each file/directory and optionally returning a FileVisitResult
value
which can be used to control subsequent processingFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
traverse(Path, java.util.Map, groovy.lang.Closure)
public static void traverse(Path self, Map<String,Object> options) throws IOException
traverse(Path, java.util.Map, groovy.lang.Closure)
allowing the 'visit' closure
to be included in the options Map rather than as a parameter.self
- a Pathoptions
- a Map of options to alter the traversal behaviorFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directory or illegal filter combinations are suppliedIOException
traverse(Path, java.util.Map, groovy.lang.Closure)
public static void eachFileRecurse(Path self, Closure closure) throws IOException
self
- a Pathclosure
- a closureFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
public static void eachDirRecurse(Path self, Closure closure) throws IOException
self
- a directoryclosure
- a closureFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
public static void eachFileMatch(Path self, FileType fileType, Object nameFilter, Closure closure) throws IOException
DefaultGroovyMethods.isCase(Object, Object)
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()}" }
self
- a filefileType
- whether normal files or directories or both should be processednameFilter
- the filter to perform on the name of the file/directory (using the DefaultGroovyMethods.isCase(Object, Object)
method)closure
- the closure to invokeFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
public static void eachFileMatch(Path self, Object nameFilter, Closure closure) throws IOException
DefaultGroovyMethods.isCase(Object, Object)
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.self
- a filenameFilter
- the nameFilter to perform on the name of the file (using the DefaultGroovyMethods.isCase(Object, Object)
method)closure
- the closure to invokeFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
eachFileMatch(Path, groovy.io.FileType, Object, groovy.lang.Closure)
public static void eachDirMatch(Path self, Object nameFilter, Closure closure) throws IOException
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.self
- a filenameFilter
- the nameFilter to perform on the name of the directory (using the DefaultGroovyMethods.isCase(Object, Object)
method)closure
- the closure to invokeFileNotFoundException
- if the given directory does not existIllegalArgumentException
- if the provided Path object does not represent a directoryIOException
eachFileMatch(Path, groovy.io.FileType, Object, groovy.lang.Closure)
public static boolean deleteDir(Path self)
The method returns
self
- a Pathpublic static boolean renameTo(Path self, String newPathName)
self
- a PathnewPathName
- The new pathname for the named filetrue
if and only if the renaming succeeded;
false
otherwisepublic static boolean renameTo(Path self, URI newPathName)
self
- a PathnewPathName
- The new target path specified as a URI objecttrue
if and only if the renaming succeeded;
false
otherwisepublic static Path asWritable(Path self)
Writable
.self
- a Pathpublic static <T> T asType(Path path, Class<T> c)
Writable
or delegates to default
DefaultGroovyMethods.asType(Object, Class)
.path
- a Pathc
- the desired classpublic static Path asWritable(Path self, String encoding)
self
- a Pathencoding
- the encoding to be used when reading the file's contentspublic static BufferedReader newReader(Path self) throws IOException
self
- a PathIOException
- if an IOException occurs.public static BufferedReader newReader(Path self, String charset) throws IOException
self
- a Pathcharset
- the charset for this PathFileNotFoundException
- if the Path was not foundUnsupportedEncodingException
- if the encoding specified is not supportedIOException
public static <T> T withReader(Path self, Closure<T> closure) throws IOException
self
- a file objectclosure
- a closureIOException
- if an IOException occurs.public static <T> T withReader(Path self, String charset, Closure<T> closure) throws IOException
self
- a file objectcharset
- the charset for this input streamclosure
- a closureIOException
- if an IOException occurs.public static BufferedOutputStream newOutputStream(Path self) throws IOException
self
- a file objectIOException
- if an IOException occurs.public static DataOutputStream newDataOutputStream(Path self) throws IOException
self
- a file objectIOException
- if an IOException occurs.public static Object withOutputStream(Path self, Closure closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.OutputStream, groovy.lang.Closure)
public static Object withInputStream(Path self, Closure closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.InputStream, groovy.lang.Closure)
public static <T> T withDataOutputStream(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.OutputStream, groovy.lang.Closure)
public static <T> T withDataInputStream(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.withStream(java.io.InputStream, groovy.lang.Closure)
public static BufferedWriter newWriter(Path self) throws IOException
self
- a PathIOException
- if an IOException occurs.public static BufferedWriter newWriter(Path self, boolean append) throws IOException
self
- a Pathappend
- true if data should be appended to the fileIOException
- if an IOException occurs.public static BufferedWriter newWriter(Path self, String charset, boolean append) throws IOException
self
- a Pathcharset
- the name of the encoding used to write in this fileappend
- true if in append modeIOException
- if an IOException occurs.public static BufferedWriter newWriter(Path self, String charset) throws IOException
self
- a Pathcharset
- the name of the encoding used to write in this fileIOException
- if an IOException occurs.public static <T> T withWriter(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.public static <T> T withWriter(Path self, String charset, Closure<T> closure) throws IOException
self
- a Pathcharset
- the charset usedclosure
- a closureIOException
- if an IOException occurs.public static <T> T withWriterAppend(Path self, String charset, Closure<T> closure) throws IOException
self
- a Pathcharset
- the charset usedclosure
- a closureIOException
- if an IOException occurs.public static <T> T withWriterAppend(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.public static PrintWriter newPrintWriter(Path self) throws IOException
self
- a PathIOException
- if an IOException occurs.public static PrintWriter newPrintWriter(Path self, String charset) throws IOException
self
- a Pathcharset
- the charsetIOException
- if an IOException occurs.public static <T> T withPrintWriter(Path self, Closure<T> closure) throws IOException
self
- a Pathclosure
- the closure to invoke with the PrintWriterIOException
- if an IOException occurs.public static <T> T withPrintWriter(Path self, String charset, Closure<T> closure) throws IOException
self
- a Pathcharset
- the charsetclosure
- the closure to invoke with the PrintWriterIOException
- if an IOException occurs.public static BufferedInputStream newInputStream(Path self) throws IOException
self
- a PathFileNotFoundException
- if the file is not found.IOException
public static DataInputStream newDataInputStream(Path self) throws IOException
self
- a PathFileNotFoundException
- if the file is not found.IOException
public static void eachByte(Path self, Closure closure) throws IOException
self
- a Pathclosure
- a closureIOException
- if an IOException occurs.IOGroovyMethods.eachByte(java.io.InputStream, groovy.lang.Closure)
public static void eachByte(Path self, int bufferLen, Closure closure) throws IOException
self
- a PathbufferLen
- the length of the buffer to use.closure
- a 2 parameter closure which is passed the byte[] and a number of bytes successfully read.IOException
- if an IOException occurs.IOGroovyMethods.eachByte(java.io.InputStream, int, groovy.lang.Closure)
public static Writable filterLine(Path self, Closure closure) throws IOException
self
- a Pathclosure
- a closure which returns a boolean indicating to filter
the line or notIOException
- if self
is not readableIOGroovyMethods.filterLine(java.io.Reader, groovy.lang.Closure)
public static Writable filterLine(Path self, String charset, Closure closure) throws IOException
self
- a Pathcharset
- opens the file with a specified charsetclosure
- a closure which returns a boolean indicating to filter
the line or notIOException
- if an IOException occursIOGroovyMethods.filterLine(java.io.Reader, groovy.lang.Closure)
public static void filterLine(Path self, Writer writer, Closure closure) throws IOException
self
- a Pathwriter
- a writer destination to write filtered lines toclosure
- a closure which takes each line as a parameter and returns
true
if the line should be written to this writer.IOException
- if self
is not readableIOGroovyMethods.filterLine(java.io.Reader, java.io.Writer, groovy.lang.Closure)
public static void filterLine(Path self, Writer writer, String charset, Closure closure) throws IOException
self
- a Pathwriter
- a writer destination to write filtered lines tocharset
- opens the file with a specified charsetclosure
- a closure which takes each line as a parameter and returns
true
if the line should be written to this writer.IOException
- if an IO error occursIOGroovyMethods.filterLine(java.io.Reader, java.io.Writer, groovy.lang.Closure)
public static byte[] readBytes(Path self) throws IOException
self
- a PathIOException
- if an IOException occurs.public static <T> T withCloseable(Closeable self, Closure<T> action) throws IOException
self
- the Closeableaction
- the closure taking the Closeable as parameterIOException
- if an IOException occurs.