1.概述
Groovy提供的文件I/O方法有:
- 读取文件
- 写入文件
- 便利文件树
- 读取和写入数据对象到文件
涉及到的标准Java类有:
- java.io.File
- java.io.InputStream
- java.io.OutputStream
- java.io.Reader
- java.io.Writer
2.文件读取
以下例子将文本文件的所有行依次读取并打印
import java.io.File
class Example {
static void main(String[] args) {
new File("E:/Example.txt").eachLine {
line -> println "line : $line";
}
}
}
以下例子将文件全部内容作为字符串获取,通过文件类的text属性:
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println file.text
}
}
3.写入文件
import java.io.File
class Example {
static void main(String[] args) {
new File('E:/','Example.txt').withWriter('utf-8') {
writer -> writer.writeLine 'Hello World'
}
}
}
4.获取文件大小
通过File类的length属性可以获取文件的大小(默认以字节为单位):
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println "The file ${file.absolutePath} has ${file.length()} bytes"
}
}
5. 目录检查
通过File类的isFile和isDirectory属性,可以检查路径是文件还是目录:
class Example {
static void main(String[] args) {
def file = new File('E:/')
println "File? ${file.isFile()}"
println "Directory? ${file.isDirectory()}"
}
}
6.创建目录
通过File类的mkdir函数,创建一个新的目录:
class Example {
static void main(String[] args) {
def file = new File('E:/Directory')
file.mkdir()
}
}
7.删除文件
通过File类的delete功能,可以删除一个文件:
class Example {
static void main(String[] args) {
def file = new File('E:/Example.txt')
file.delete()
}
}
8.复制文件
<<
符号可以将内容从一个文件复制到另一个文件:
class Example {
static void main(String[] args) {
def src = new File("E:/Example.txt")
def dst = new File("E:/Example1.txt")
dst << src.text
}
}
9.获取目录内容
File类的listRoots函数可以显示本地的驱动器。
FIle类的eachFile函数可以列出特定目录中的文件。
File类的eachFileRecurse函数可以递归显示目录及其在目录中的所有文件。