
- Groovy Tutorial
- Groovy - Home
- Groovy - Overview
- Groovy - Environment
- Groovy - Basic Syntax
- Groovy - Data Types
- Groovy - Variables
- Groovy - Optionals
- Groovy - Numbers
- Groovy - Strings
- Groovy - Ranges
- Groovy - Lists
- Groovy - Maps
- Groovy - Dates & Times
Groovy Operators
- Groovy - Operators
- Groovy - Arithmetic Operators
- Groovy - Assignment Operators
- Groovy - Relational Operators
- Groovy - Logical Operators
- Groovy - Bitwise Operators
- Groovy - Spaceship Operator
- Groovy - in Operator
- Groovy - Elvis Operator
- Groovy - Safe Navigation Operator
- Groovy Operator Precedence & Associativity
Control Statements
- Groovy - Decision Making
- Groovy - If Else Statement
- Groovy - Switch Statement
- Groovy - Loops
- Groovy - For Loop
- Groovy - For-in Loop
- Groovy - While Loop
- Groovy - Do While Loop
- Groovy - Break Statement
- Groovy - Continue Statement
Groovy File Handling
- Groovy - File I/O
- Java - Create a File
- Java - Write to File
- Java - Append to File
- Java - Read Files
- Java - Delete Files
- Java - File Properties
- Java - File Existence and Type
- Java - File Size
- Java - File Permissions
- Java - Directories
- Java - Listing Directories
- Java - Filtering Files/Directories
- Java - Deleting Directories
- Java - Renaming Files/Directories
Groovy Error & Exceptions
- Groovy - Exception Handling
- Groovy - try-catch Block
- Groovy - try-with-resources
- Groovy - Multi-catch Block
- Groovy - Nested try Block
- Groovy - Finally Block
- Groovy - throw Exception
- Groovy - Exception Propagation
- Groovy - Built-in Exceptions
- Groovy - Custom Exception
Groovy Multithreading
- groovy - Multithreading
- groovy - Thread Life Cycle
- groovy - Creating a Thread
- groovy - Starting a Thread
- groovy - Joining Threads
- groovy - Naming Thread
- groovy - Thread Scheduler
- groovy - Thread Pools
- groovy - Main Thread
- groovy - Thread Priority
- groovy - Daemon Threads
- groovy - Shutdown Hook
Groovy Synchronization
- groovy - Synchronization
- groovy - Block Synchronization
- groovy - Static Synchronization
- groovy - Inter-thread Communication
- groovy - Thread Deadlock
- groovy - Interrupting a Thread
- groovy - Thread Control
- groovy - Reentrant Monitor
- Groovy - Methods
- Groovy - Methods
- Groovy - Optional parenthesis
- Groovy - Named Arguments
- Groovy - Closures as Arguments
- Groovy - Method Overloading
- Groovy - Method Scope and Visibility
- Groovy - isCase Method
- Groovy - Implicit Return
- Groovy - Variable Arguments
- Groovy - Regular Expressions
- Groovy - Regular Expressions
- Groovy - Defining Regular Expressions
- Groovy - Matcher Object
- Groovy - Regex Tasks
- Groovy - XML
- Groovy - XML
- Groovy - Parsing XML
- Groovy - Creating XML
- Groovy - Modifying XML
- Groovy - Querying XML
- Groovy - Simplified Notation
- Groovy - Closure based Querying
- Groovy - Closure based Creation
- Groovy - JSON
- Groovy - JSON
- Groovy - Parsing JSON
- Groovy - Creating JSON using JsonOutput
- Groovy - Creating JSON using JsonBuilder
- Groovy - Modifying JSON
- Groovy - Error Handling
- Groovy - Handling JSON Arrays
- Groovy - JSON Array Operations
- Groovy - JSON Objects
- Groovy - JSON Object Operations
- Groovy - Generics
- Groovy - Generics
- Groovy - Declaring Generic Types
- Groovy - Bound Type Parameters
- Groovy - Wild Cards
- Groovy - Miscellaneous
- Groovy - Object Oriented
- Groovy - Closures
- Groovy - Annotations
- Groovy - JMX
- Groovy - DSLS
- Groovy - Database
- Groovy - Builders
- Groovy - Command Line
- Groovy - Unit Testing
- Groovy - Template Engines
- Groovy - Meta Object Programming
- Groovy Useful Resources
- Groovy - Quick Guide
- Groovy - Useful Resources
- Groovy - Discussion
Groovy - File I/O
Groovy provides a number of helper methods when working with I/O. Groovy provides easier classes to provide the following functionalities for files.
- Reading files
- Writing to files
- Traversing file trees
- Reading and writing data objects to files
In addition to this, you can always use the normal Java classes listed below for File I/O operations.
- java.io.File
- java.io.InputStream
- java.io.OutputStream
- java.io.Reader
- java.io.Writer
Example - Reading files
The following example will output all the lines of a text file in Groovy. The method eachLine is in-built in the File class in Groovy for the purpose of ensuring that each line of the text file is read.
Example.groovy
import java.io.File class Example { static void main(String[] args) { new File("E:/Example.txt").eachLine { line -> println "line : $line"; } } }
Output
The File class is used to instantiate a new object which takes the file name as the parameter. It then takes the function of eachLine, puts it to a variable called line and prints it accordingly.
If the file contains the following lines, they will be printed.
line : Example1 line : Example2
Example - Reading the Contents of a File as an Entire String
If you want to get the entire contents of the file as a string, you can use the text property of the file class. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { File file = new File("E:/Example.txt") println file.text } }
Output
If the file contains the following lines, they will be printed.
line : Example1 line : Example2
Example - Writing to Files
If you want to write to files, you need to use the writer class to output text to a file. The following example shows how this can be done.
Example.groovy
import java.io.File class Example { static void main(String[] args) { new File('E:/','Example.txt').withWriter('utf-8') { writer -> writer.writeLine 'Hello World' } } }
Output
If you open the file Example.txt, you will see the words Hello World printed to the file.
Hello World
Example - Getting the Size of a File
If you want to get the size of the file one can use the length property of the file class to get the size of the file. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { File file = new File("E:/Example.txt") println "The file ${file.absolutePath} has ${file.length()} bytes" } }
Output
The above code would show the size of the file in bytes.
45
Example - Testing if a File is a Directory
If you want to see if a path is a file or a directory, one can use the isFile and isDirectory option of the File class. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { def file = new File('E:/') println "File? ${file.isFile()}" println "Directory? ${file.isDirectory()}" } }
Output
The above code would show the following output −
File? false Directory? True
Example - Creating a Directory
If you want to create a new directory you can use the mkdir function of the File class. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { def file = new File('E:/Directory') file.mkdir() } }
Output
The directory E:\Directory will be created if it does not exist.
Example - Deleting a File
If you want to delete a file you can use the delete function of the File class. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { def file = new File('E:/Example.txt') file.delete() } }
Output
The file will be deleted if it exists.
Example - Copying files
Groovy also provides the functionality to copy the contents from one file to another. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { def src = new File("E:/Example.txt") def dst = new File("E:/Example1.txt") dst << src.text } }
Output
The file Example1.txt will be created and all of the contents of the file Example.txt will be copied to this file.
Example - Getting Directory Contents
Groovy also provides the functionality to list the drives and files in a drive.
The following example shows how the drives on a machine can be displayed by using the listRoots function of the File class.
Example.groovy
class Example { static void main(String[] args) { def rootFiles = new File("test").listRoots() rootFiles.each { file -> println file.absolutePath } } }
Output
Depending on the drives available on your machine, the output could vary. On a standard machine the output would be similar to the following one −
C:\ D:\
Example - Listing files of a directory
The following example shows how to list the files in a particular directory by using the eachFile function of the File class.
Example.groovy
class Example { static void main(String[] args) { new File("E:/Temp").eachFile() { file->println file.getAbsolutePath() } } }
Output
The output would display all of the files in the directory E:\Temp
Example - Recursively Listing files of a directory
If you want to recursively display all of files in a directory and its subdirectories, then you would use the eachFileRecurse function of the File class. The following example shows how this can be done.
Example.groovy
class Example { static void main(String[] args) { new File("E:/temp").eachFileRecurse() { file -> println file.getAbsolutePath() } } }
Output
The output would display all of the files in the directory E:\Temp and in its subdirectories if they exist.