Groovy 中处理文件 I/O 时,除了可以使用 Java 本身的IO类,如: java.io.File, java.io.InputStream,java.io.OutputStream,java.io.Reader,java.io.Writer 之外,本身也提供了一些简单的类来完成文件 I/O 的一些基本操作;

读取文件

//读取文件,并在控制台逐行打印
def lineCount = 0;
File file = new File("./test.txt");
file.eachLine{
     line -> println("line ${lineCount++}: ${line}");
}
        
//获取文件所有内容
def fileStr = file.text;
println(fileStr);

写入文件

def strOut = """Hello world!
Welcome to Groovy!
This is some output to the new file.""";

File fileOut = new File("./out.txt");
fileOut.withWriter('utf-8'){
    writer -> writer.writeLine(strOut);
}

获取文件信息

File file = new File("./test.txt");
def fileSize = file.length();           //获取文件大小
def filepath = file.absolutePath();     //获取文件绝对路径
def isFile = file.isFile();             //判断是否文件
def isDirectory = file.isDirectory();   //判断是否为目录

目录操作

//创建目录
File dir = new File("./testDir");
dir.mkdir();

//列举机器上的驱动器
def rootFiles = new File("test").listRoots() 
rootFiles.each { 
    file -> println file.absolutePath 
}
//output: C:\ 
//        D:\

//列举指定目录下的所有文件
def file = new File("E:/test");
file.eachFIleResource(){
    file -> println(file.getAbsolutePath());
}

删除文件

File file = new File("./test.txt");
file.delete();