Groovy I/O
Groovy在使用I / O时提供了许多辅助方法,Groovy提供了更简单的类来为文件提供以下功能。
1.读取文件
2.写入文件
3.遍历文件树
4.读取和写入数据对象到文件
除此之外也可以使用Java类:
java.io.File --文件类
java.io.InputStream --字节流读取
java.io.OutputStream --字节流写入
java.io.Reader --字符读取
java.io.Writer --字符写入
其他的类基本都是基于上述类的装饰者模式类
下面是逐个介绍groovy提供的类功能:
1.读取文件
读取的文本文件的所有行。方法eachLine内置在Groovy中的File类中,目的是确保文本文件的每一行都被读取。
new File("E:/Example.txt").eachLine {
line -> println "line : $line";
}
读取文件的内容到字符串
File file = new File("E:/Example.txt")
println file.text
写入文件:
new File('E:/','Example.txt').withWriter('utf-8') {
writer -> writer.writeLine 'Hello World'
}
获取文件大小:
File file = new File("E:/Example.txt")
println "The file ${file.absolutePath} has ${file.length()} bytes" --文件大小打印
测试文件是否是目录
def file = new File('E:/')
println "File? ${file.isFile()}" --判断是否是文件,打印结果
println "Directory? ${file.isDirectory()}" --判断是否是文件夹,打印结果
创建目录:
def file = new File('E:/Directory')
file.mkdir()
删除文件
def file = new File('E:/Example.txt')
file.delete()
复制文件
def src = new File("E:/Example.txt")
def dst = new File("E:/Example1.txt")
dst << src.text
获取文件内容
1.显示如何使用File类的listRoots函数显示机器上的驱动器
def rootFiles = new File("test").listRoots()
rootFiles.each {
file -> println file.absolutePath
}
2.输出指定文件夹下内容
new File("E:/Temp").eachFile() {
file->println file.getAbsolutePath()
}
3.递归显示目录及其子目录中的所有文件
new File("E:/temp").eachFileRecurse() {
file -> println file.getAbsolutePath()
}