当前位置:K88软件开发文章中心编程语言JavaGroovy → 文章内容

Groovy 文件I/O

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:49:39

由 lichiabor 创建,Alma 最后一次修改 2016-12-12 Groovy在使用I / O时提供了许多辅助方法,Groovy提供了更简单的类来为文件提供以下功能。读取文件写入文件遍历文件树读取和写入数据对象到文件除此之外,您始终可以使用下面列出的用于文件I / O操作的标准Java类。java.io.Filejava.io.InputStreamjava.io.OutputStreamjava.io.Readerjava.io.Writer读取文件以下示例将输出Groovy中的文本文件的所有行。方法eachLine内置在Groovy中的File类中,目的是确保文本文件的每一行都被读取。import java.io.File class Example { static void main(String[] args) { new File("E:/Example.txt").eachLine { line -> println "line : $line"; } } } File类用于实例化以文件名作为参数的新对象。 然后它接受eachLine的函数,将它放到一个line的变量并相应地打印它。如果文件包含以下行,它们将被打印。line : Example1line : Example2读取文件的内容到字符串如果要将文件的整个内容作为字符串获取,可以使用文件类的text属性。以下示例显示如何完成此操作。class Example { static void main(String[] args) { File file = new File("E:/Example.txt") println file.text } }如果该文件包含以下行,它们将被打印出来。 line : Example1 line : Example2写入文件如果你想写入文件,你需要使用作家类输出文本到一个文件中。下面的例子说明了如何可以做到这一点。 import java.io.File class Example { static void main(String[] args) { new File('E:/','Example.txt').withWriter('utf-8') { writer -> writer.writeLine 'Hello World' } } }如果你打开文件example.txt文件,您将看到文本中打印了“Hello World”这个词。获取文件的大小如果要获取文件的大小,可以使用文件类的length属性来获取,以下示例显示如何完成此操作。class Example { static void main(String[] args) { File file = new File("E:/Example.txt") println "The file ${file.absolutePath} has ${file.length()} bytes" } }上面的代码将显示文件的大小(以字节为单位)。测试文件是否是目录如果要查看路径是文件还是目录,可以使用File类的isFile和isDirectory选项。以下示例显示如何完成此操作。class Example { static void main(String[] args) { def file = new File('E:/') println "File? ${file.isFile()}" println "Directory? ${file.isDirectory()}" } }上面的代码将显示以下输出 - File? false Directory? True创建目录如果要创建一个新目录,可以使用File类的mkdir函数。以下示例显示如何完成此操作。class Example { static void main(String[] args) { def file = new File('E:/Directory') file.mkdir() } }如果目录E:\ Directory不存在,将创建它。删除文件如果要删除文件,可以使用File类的delete功能。以下示例显示如何完成此操作。class Example { static void main(String[] args) { def file = new File('E:/Example.txt') file.delete() } }如果存在该文件将被删除。 复制文件 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 } }将创建文件Example1.txt,并将文件Example.txt的所有内容复制到此文件。获取目录内容 Groovy还提供了列出驱动器中的驱动器和文件的功能。以下示例显示如何使用File类的listRoots函数显示机器上的驱动器。class Example { static void main(String[] args) { def rootFiles = new File("test").listRoots() rootFiles.each { file -> println file.absolutePath } }}根据机器上可用的驱动器,输出可能会有所不同。在标准机器上的输出将类似于下面的一个 - C:\D:\以下示例显示如何使用File类的eachFile函数列出特定目录中的文件。class Example { static void main(String[] args) { new File("E:/Temp").eachFile() { file->println file.getAbsolutePath() } } }输出将显示目录E:\ Temp中的所有文件如果要递归显示目录及其子目录中的所有文件,则可以使用File类的eachFileRecurse函数。以下示例显示如何完成此操作。class Example { static void main(String[] args) { new File("E:/temp").eachFileRecurse() { file -> println file.getAbsolutePath() } }} 输出将显示目录E:\ Temp中的所有文件及其子目录(如果存在)。

Groovy 文件I/O