|
Groovy 2.2.0 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport org.codehaus.groovy.runtime.ResourceGroovyMethods
public class ResourceGroovyMethods 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.
Method Summary | |
---|---|
static void
|
append(File file, Object text)
Append the text at the end of the File. |
static void
|
append(File file, byte[] bytes)
Append bytes to the end of a File. |
static void
|
append(File self, InputStream stream)
Append binary data to the file. |
static void
|
append(File file, Object text, String charset)
Append the text at the end of the File, using a specified encoding. |
static Object
|
asType(File f, Class c)
|
static File
|
asWritable(File file)
|
static File
|
asWritable(File file, String encoding)
Allows a file to return a Writable implementation that can output itself to a Writer stream. |
static boolean
|
deleteDir(File self)
|
static long
|
directorySize(File self)
Calculates directory size as total size of all its files, recursively. |
static void
|
eachByte(File self, Closure closure)
|
static void
|
eachByte(File self, int bufferLen, Closure closure)
|
static void
|
eachByte(URL url, Closure closure)
|
static void
|
eachByte(URL url, int bufferLen, Closure closure)
|
static void
|
eachDir(File self, Closure closure)
Invokes the closure for each subdirectory in this directory, ignoring regular files. |
static void
|
eachDirMatch(File 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 method to determine if a match occurs. |
static void
|
eachDirRecurse(File self, Closure closure)
Invokes the closure for each descendant directory of this directory. |
static void
|
eachFile(File self, FileType fileType, Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory. |
static void
|
eachFile(File self, Closure closure)
Invokes the closure for each 'child' file in this 'parent' folder/directory. |
static void
|
eachFileMatch(File 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. |
static void
|
eachFileMatch(File 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. |
static void
|
eachFileRecurse(File self, FileType fileType, Closure closure)
Invokes the closure for each descendant file in this directory. |
static void
|
eachFileRecurse(File self, Closure closure)
Invokes the closure for each descendant file in this directory. |
static Object
|
eachLine(File self, Closure closure)
Iterates through this file line by line. |
static Object
|
eachLine(File self, String charset, Closure closure)
Iterates through this file line by line. |
static Object
|
eachLine(File self, int firstLine, Closure closure)
Iterates through this file line by line. |
static Object
|
eachLine(File self, String charset, int firstLine, Closure closure)
Iterates through this file line by line. |
static Object
|
eachLine(URL url, Closure closure)
Iterates through the lines read from the URL's associated input stream passing each line to the given 1 or 2 arg closure. |
static Object
|
eachLine(URL url, int firstLine, Closure closure)
Iterates through the lines read from the URL's associated input stream passing each line to the given 1 or 2 arg closure. |
static Object
|
eachLine(URL url, String charset, Closure closure)
Iterates through the lines read from the URL's associated input stream passing each line to the given 1 or 2 arg closure. |
static Object
|
eachLine(URL url, String charset, int firstLine, Closure closure)
Iterates through the lines read from the URL's associated input stream passing each line to the given 1 or 2 arg closure. |
static void
|
eachObject(File self, Closure closure)
Iterates through the given file object by object. |
static Writable
|
filterLine(File self, Closure closure)
|
static Writable
|
filterLine(File self, String charset, Closure closure)
|
static void
|
filterLine(File self, Writer writer, Closure closure)
|
static void
|
filterLine(File self, Writer writer, String charset, Closure closure)
|
static Writable
|
filterLine(URL self, Closure predicate)
|
static Writable
|
filterLine(URL self, String charset, Closure predicate)
|
static void
|
filterLine(URL self, Writer writer, Closure predicate)
|
static void
|
filterLine(URL self, Writer writer, String charset, Closure predicate)
|
static byte[]
|
getBytes(File file)
Read the content of the File and returns it as a byte[]. |
static byte[]
|
getBytes(URL url)
Read the content of this URL and returns it as a byte[]. |
static String
|
getText(File file, String charset)
Read the content of the File using the specified encoding and return it as a String. |
static String
|
getText(File file)
Read the content of the File and returns it as a String. |
static String
|
getText(URL url)
Read the content of this URL and returns it as a String. |
static String
|
getText(URL url, Map parameters)
Read the content of this URL and returns it as a String. |
static String
|
getText(URL url, String charset)
Read the data from this URL and return it as a String. |
static String
|
getText(URL url, Map parameters, String charset)
Read the data from this URL and return it as a String. |
static File
|
leftShift(File file, Object text)
Write the text to the File. |
static File
|
leftShift(File file, byte[] bytes)
Write bytes to a File. |
static File
|
leftShift(File file, InputStream data)
Append binary data to the file. |
static DataInputStream
|
newDataInputStream(File file)
|
static DataOutputStream
|
newDataOutputStream(File file)
|
static BufferedInputStream
|
newInputStream(File file)
|
static BufferedInputStream
|
newInputStream(URL url)
Creates a buffered input stream for this URL. |
static BufferedInputStream
|
newInputStream(URL url, Map parameters)
|
static ObjectInputStream
|
newObjectInputStream(File file)
Create an object input stream for this file. |
static ObjectInputStream
|
newObjectInputStream(File file, ClassLoader classLoader)
Create an object input stream for this file using the given class loader. |
static ObjectOutputStream
|
newObjectOutputStream(File file)
Create an object output stream for this file. |
static BufferedOutputStream
|
newOutputStream(File file)
|
static PrintWriter
|
newPrintWriter(File file)
|
static PrintWriter
|
newPrintWriter(File file, String charset)
|
static BufferedReader
|
newReader(File file)
|
static BufferedReader
|
newReader(File file, String charset)
|
static BufferedReader
|
newReader(URL url)
|
static BufferedReader
|
newReader(URL url, Map parameters)
|
static BufferedReader
|
newReader(URL url, String charset)
|
static BufferedReader
|
newReader(URL url, Map parameters, String charset)
|
static BufferedWriter
|
newWriter(File file)
|
static BufferedWriter
|
newWriter(File file, boolean append)
|
static BufferedWriter
|
newWriter(File file, String charset, boolean append)
|
static BufferedWriter
|
newWriter(File file, String charset)
Creates a buffered writer for this file, writing data using the given encoding. |
static byte[]
|
readBytes(File file)
|
static List
|
readLines(File file)
Reads the file into a list of Strings, with one item for each line. |
static List
|
readLines(File file, String charset)
Reads the file into a list of Strings, with one item for each line. |
static List
|
readLines(URL self)
Reads the URL contents into a list, with one element for each line. |
static List
|
readLines(URL self, String charset)
Reads the URL contents into a list, with one element for each line. |
static boolean
|
renameTo(File self, String newPathName)
Renames the file. |
static void
|
setBytes(File file, byte[] bytes)
Write the bytes from the byte array to the File. |
static void
|
setText(File file, String text)
Synonym for write(text) allowing file.text = 'foo'. |
static void
|
setText(File file, 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' |
static long
|
size(File self)
Provide the standard Groovy |
static Object
|
splitEachLine(File self, String regex, Closure closure)
Iterates through this file line by line, splitting each line using the given regex separator. |
static Object
|
splitEachLine(File self, Pattern pattern, Closure closure)
Iterates through this file line by line, splitting each line using the given separator Pattern. |
static Object
|
splitEachLine(File self, String regex, String charset, Closure closure)
Iterates through this file line by line, splitting each line using the given regex separator. |
static Object
|
splitEachLine(File self, Pattern pattern, String charset, Closure closure)
Iterates through this file line by line, splitting each line using the given regex separator Pattern. |
static Object
|
splitEachLine(URL self, String regex, Closure closure)
Iterates through the input stream associated with this URL line by line, splitting each line using the given regex separator. |
static Object
|
splitEachLine(URL self, Pattern pattern, Closure closure)
Iterates through the input stream associated with this URL line by line, splitting each line using the given regex separator Pattern. |
static Object
|
splitEachLine(URL self, String regex, String charset, Closure closure)
Iterates through the input stream associated with this URL line by line, splitting each line using the given regex separator. |
static Object
|
splitEachLine(URL self, Pattern pattern, String charset, Closure closure)
Iterates through the input stream associated with this URL line by line, splitting each line using the given regex separator Pattern. |
static URI
|
toURI(CharSequence self)
Transforms a CharSequence representing a URI into a URI object. |
static URI
|
toURI(String self)
|
static URL
|
toURL(CharSequence self)
|
static URL
|
toURL(String self)
|
static void
|
traverse(File self, Map options, Closure closure)
Invokes |
static void
|
traverse(File self, Closure closure)
Invokes the closure for each descendant file in this directory tree. |
static void
|
traverse(File self, Map options)
Invokes the closure specified with key 'visit' in the options Map for each descendant file in this directory tree. |
static Object
|
withDataInputStream(File file, Closure closure)
|
static Object
|
withDataOutputStream(File file, Closure closure)
|
static Object
|
withInputStream(File file, Closure closure)
|
static Object
|
withInputStream(URL url, Closure closure)
|
static Object
|
withObjectInputStream(File file, Closure closure)
Create a new ObjectInputStream for this file and pass it to the closure. |
static Object
|
withObjectInputStream(File file, ClassLoader classLoader, Closure closure)
Create a new ObjectInputStream for this file associated with the given class loader and pass it to the closure. |
static Object
|
withObjectOutputStream(File file, Closure closure)
Create a new ObjectOutputStream for this file and then pass it to the closure. |
static Object
|
withOutputStream(File file, Closure closure)
|
static Object
|
withPrintWriter(File file, Closure closure)
|
static Object
|
withPrintWriter(File file, String charset, Closure closure)
|
static Object
|
withReader(File file, Closure closure)
|
static Object
|
withReader(File file, String charset, Closure closure)
|
static Object
|
withReader(URL url, Closure closure)
|
static Object
|
withReader(URL url, String charset, Closure closure)
|
static Object
|
withWriter(File file, 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. |
static Object
|
withWriter(File file, String charset, Closure closure)
|
static Object
|
withWriterAppend(File file, String charset, Closure closure)
|
static Object
|
withWriterAppend(File file, Closure closure)
|
static void
|
write(File file, String text)
Write the text to the File. |
static void
|
write(File file, String text, String charset)
Write the text to the File, using the specified encoding. |
Methods inherited from class Object | |
---|---|
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Method Detail |
---|
public static void append(File file, Object text)
file
- a Filetext
- the text to append at the end of the File
public static void append(File file, byte[] bytes)
file
- a Filebytes
- the byte array to append to the end of the File
public static void append(File self, InputStream stream)
self
- a Filestream
- stream to read data from.
public static void append(File file, Object text, String charset)
file
- a Filetext
- the text to append at the end of the Filecharset
- the charset used
@SuppressWarnings/** public static Object asType(File f, Class c)
public static File asWritable(File file)
public static File asWritable(File file, String encoding)
file
- a Fileencoding
- the encoding to be used when reading the file's contents
public static boolean deleteDir(File self)
public static long directorySize(File self)
self
- a file object
public static void eachByte(File self, Closure closure)
public static void eachByte(File self, int bufferLen, Closure closure)
public static void eachByte(URL url, Closure closure)
public static void eachByte(URL url, int bufferLen, Closure closure)
public static void eachDir(File self, Closure closure)
self
- a File (that happens to be a folder/directory)closure
- a closure (first parameter is the subdirectory file)
public static void eachDirMatch(File self, Object nameFilter, Closure closure)
self
- a filenameFilter
- the nameFilter to perform on the name of the directory (using the DefaultGroovyMethods.isCase method)closure
- the closure to invoke
public static void eachDirRecurse(File self, Closure closure)
self
- a directoryclosure
- a closure
public static void eachFile(File self, FileType fileType, Closure closure)
self
- a file objectfileType
- if normal files or directories or both should be processedclosure
- the closure to invoke
public static void eachFile(File self, Closure closure)
self
- a File (that happens to be a folder/directory)closure
- a closure (first parameter is the 'child' file)
public static void eachFileMatch(File self, FileType fileType, Object nameFilter, Closure closure)
// 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()}" }
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 method)closure
- the closure to invoke
public static void eachFileMatch(File self, Object nameFilter, Closure closure)
self
- a filenameFilter
- the nameFilter to perform on the name of the file (using the DefaultGroovyMethods.isCase method)closure
- the closure to invoke
public static void eachFileRecurse(File self, FileType fileType, Closure closure)
self
- a file objectfileType
- if normal files or directories or both should be processedclosure
- the closure to invoke on each file
public static void eachFileRecurse(File self, Closure closure)
self
- a Fileclosure
- a closure
public static Object eachLine(File self, Closure closure)
self
- a Fileclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)
public static Object eachLine(File self, String charset, Closure closure)
self
- a Filecharset
- opens the file with a specified charsetclosure
- a closure (arg 1 is line, optional arg 2 is line number starting at line 1)
public static Object eachLine(File self, int firstLine, Closure closure)
self
- a FilefirstLine
- 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)
public static Object eachLine(File self, String charset, int firstLine, Closure closure)
self
- a Filecharset
- 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)
public static Object eachLine(URL url, Closure closure)
url
- a URL to open and readclosure
- a closure to apply on each line (arg 1 is line, optional arg 2 is line number starting at line 1)
public static Object eachLine(URL url, int firstLine, Closure closure)
url
- a URL to open and readfirstLine
- the line number value used for the first line (default is 1, set to 0 to start counting from 0)closure
- a closure to apply on each line (arg 1 is line, optional arg 2 is line number)
public static Object eachLine(URL url, String charset, Closure closure)
url
- a URL to open and readcharset
- opens the stream with a specified charsetclosure
- a closure to apply on each line (arg 1 is line, optional arg 2 is line number starting at line 1)
public static Object eachLine(URL url, String charset, int firstLine, Closure closure)
url
- a URL to open and readcharset
- opens the stream with a specified charsetfirstLine
- the line number value used for the first line (default is 1, set to 0 to start counting from 0)closure
- a closure to apply on each line (arg 1 is line, optional arg 2 is line number)
public static void eachObject(File self, Closure closure)
self
- a Fileclosure
- a closure
public static Writable filterLine(File self, Closure closure)
public static Writable filterLine(File self, String charset, Closure closure)
public static void filterLine(File self, Writer writer, Closure closure)
public static void filterLine(File self, Writer writer, String charset, Closure closure)
public static Writable filterLine(URL self, Closure predicate)
public static Writable filterLine(URL self, String charset, Closure predicate)
public static void filterLine(URL self, Writer writer, Closure predicate)
public static void filterLine(URL self, Writer writer, String charset, Closure predicate)
public static byte[] getBytes(File file)
file
- the file whose content we want to read
public static byte[] getBytes(URL url)
url
- URL to read content from
public static String getText(File file, String charset)
file
- the file whose content we want to readcharset
- the charset used to read the content of the file
public static String getText(File file)
file
- the file whose content we want to read
public static String getText(URL url)
url
- URL to read content from
public static String getText(URL url, Map parameters)
url
- URL to read content fromparameters
- connection parameters
public static String getText(URL url, String charset)
url
- URL to read content fromcharset
- opens the stream with a specified charset
public static String getText(URL url, Map parameters, String charset)
url
- URL to read content fromparameters
- connection parameterscharset
- opens the stream with a specified charset
public static File leftShift(File file, Object text)
file
- a Filetext
- the text to write to the File
public static File leftShift(File file, byte[] bytes)
file
- a Filebytes
- the byte array to append to the end of the File
public static File leftShift(File file, InputStream data)
file
- a Filedata
- an InputStream of data to write to the file
public static DataInputStream newDataInputStream(File file)
public static DataOutputStream newDataOutputStream(File file)
public static BufferedInputStream newInputStream(File file)
public static BufferedInputStream newInputStream(URL url)
url
- a URL
public static BufferedInputStream newInputStream(URL url, Map parameters)
public static ObjectInputStream newObjectInputStream(File file)
file
- a file
public static ObjectInputStream newObjectInputStream(File file, ClassLoader classLoader)
file
- a fileclassLoader
- the class loader to use when loading the class
public static ObjectOutputStream newObjectOutputStream(File file)
file
- a file
public static BufferedOutputStream newOutputStream(File file)
public static PrintWriter newPrintWriter(File file)
public static PrintWriter newPrintWriter(File file, String charset)
public static BufferedReader newReader(File file)
public static BufferedReader newReader(File file, String charset)
public static BufferedReader newReader(URL url)
public static BufferedReader newReader(URL url, Map parameters)
public static BufferedReader newReader(URL url, String charset)
public static BufferedReader newReader(URL url, Map parameters, String charset)
public static BufferedWriter newWriter(File file)
public static BufferedWriter newWriter(File file, boolean append)
public static BufferedWriter newWriter(File file, String charset, boolean append)
public static BufferedWriter newWriter(File file, String charset)
file
- a Filecharset
- the name of the encoding used to write in this file
public static byte[] readBytes(File file)
public static List readLines(File file)
file
- a File
public static List readLines(File file, String charset)
file
- a Filecharset
- opens the file with a specified charset
public static List readLines(URL self)
self
- a URL
public static List readLines(URL self, String charset)
self
- a URLcharset
- opens the URL with a specified charset
public static boolean renameTo(File self, String newPathName)
self
- a FilenewPathName
- The new pathname for the named filetrue
if and only if the renaming succeeded;
false
otherwise
public static void setBytes(File file, byte[] bytes)
file
- the file to write tobytes
- the byte[] to write to the file
public static void setText(File file, String text)
file
- a Filetext
- the text to write to the File
public static void setText(File file, String text, String charset)
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'
file
- A Filecharset
- The charset used when writing to the filetext
- The text to write to the File
public static long size(File self)
size()
method for File
.
self
- a file object
public static Object splitEachLine(File self, String regex, Closure closure)
self
- a Fileregex
- the delimiting regular expressionclosure
- a closure
public static Object splitEachLine(File self, Pattern pattern, Closure closure)
self
- a Filepattern
- the regular expression Pattern for the delimiterclosure
- a closure
public static Object splitEachLine(File self, String regex, String charset, Closure closure)
self
- a Fileregex
- the delimiting regular expressioncharset
- opens the file with a specified charsetclosure
- a closure
public static Object splitEachLine(File self, Pattern pattern, String charset, Closure closure)
self
- a Filepattern
- the regular expression Pattern for the delimitercharset
- opens the file with a specified charsetclosure
- a closure
public static Object splitEachLine(URL self, String regex, Closure closure)
self
- a URL to open and readregex
- the delimiting regular expressionclosure
- a closure
public static Object splitEachLine(URL self, Pattern pattern, Closure closure)
self
- a URL to open and readpattern
- the regular expression Pattern for the delimiterclosure
- a closure
public static Object splitEachLine(URL self, String regex, String charset, Closure closure)
self
- a URL to open and readregex
- the delimiting regular expressioncharset
- opens the file with a specified charsetclosure
- a closure
public static Object splitEachLine(URL self, Pattern pattern, String charset, Closure closure)
self
- a URL to open and readpattern
- the regular expression Pattern for the delimitercharset
- opens the file with a specified charsetclosure
- a closure
public static URI toURI(CharSequence self)
self
- the CharSequence representing a URI
public static URI toURI(String self)
public static URL toURL(CharSequence self)
public static URL toURL(String self)
public static void traverse(File self, Map options, Closure closure)
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: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 Fileoptions
- 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 processing
public static void traverse(File self, Closure closure)
self
- a Fileclosure
- the Closure to invoke on each file/directory and optionally returning a FileVisitResult value
which can be used to control subsequent processing
public static void traverse(File self, Map options)
self
- a Fileoptions
- a Map of options to alter the traversal behavior
public static Object withDataInputStream(File file, Closure closure)
public static Object withDataOutputStream(File file, Closure closure)
public static Object withInputStream(File file, Closure closure)
public static Object withInputStream(URL url, Closure closure)
public static Object withObjectInputStream(File file, Closure closure)
file
- a Fileclosure
- a closure
public static Object withObjectInputStream(File file, ClassLoader classLoader, Closure closure)
file
- a FileclassLoader
- the class loader to use when loading the classclosure
- a closure
public static Object withObjectOutputStream(File file, Closure closure)
file
- a Fileclosure
- a closure
public static Object withOutputStream(File file, Closure closure)
public static Object withPrintWriter(File file, Closure closure)
public static Object withPrintWriter(File file, String charset, Closure closure)
public static Object withReader(File file, Closure closure)
public static Object withReader(File file, String charset, Closure closure)
public static Object withReader(URL url, Closure closure)
public static Object withReader(URL url, String charset, Closure closure)
public static Object withWriter(File file, Closure closure)
file
- a Fileclosure
- a closure
public static Object withWriter(File file, String charset, Closure closure)
public static Object withWriterAppend(File file, String charset, Closure closure)
public static Object withWriterAppend(File file, Closure closure)
public static void write(File file, String text)
file
- a Filetext
- the text to write to the File
public static void write(File file, String text, String charset)
file
- a Filetext
- the text to write to the Filecharset
- the charset used
Copyright © 2003-2013 The Codehaus. All rights reserved.