课程表

Groovy课程

工具箱
速查手册

Groovy 文件I/O

当前位置:免费教程 » Java相关 » Groovy

Groovy在使用I / O时提供了许多辅助方法。 Groovy提供了更简单的类来为文件提供以下功能。

  • 读取文件
  • 写入文件
  • 遍历文件树
  • 读取和写入数据对象到文件

除此之外,您始终可以使用下面列出的用于文件I / O操作的标准Java类。

  • java.io.File
  • java.io.InputStream
  • java.io.OutputStream
  • java.io.Reader
  • java.io.Writer

读取文件

以下示例将输出Groovy中的文本文件的所有行。方法eachLine内置在Groovy中的File类中,目的是确保文本文件的每一行都被读取。

  1. import java.io.File
  2. class Example {
  3. static void main(String[] args) {
  4. new File("E:/Example.txt").eachLine {
  5. line -> println "line : $line";
  6. }
  7. }
  8. }

File类用于实例化以文件名作为参数的新对象。 然后它接受eachLine的函数,将它放到一个line的变量并相应地打印它。

如果文件包含以下行,它们将被打印。

  1. line : Example1
  2. line : Example2

读取文件的内容到字符串

如果要将文件的整个内容作为字符串获取,可以使用文件类的text属性。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. File file = new File("E:/Example.txt")
  4. println file.text
  5. }
  6. }

如果该文件包含以下行,它们将被打印出来。

  1. line : Example1
  2. line : Example2

写入文件

如果你想写入文件,你需要使用作家类输出文本到一个文件中。下面的例子说明了如何可以做到这一点。

  1. import java.io.File
  2. class Example {
  3. static void main(String[] args) {
  4. new File('E:/','Example.txt').withWriter('utf-8') {
  5. writer -> writer.writeLine 'Hello World'
  6. }
  7. }
  8. }

如果你打开文件example.txt文件,您将看到文本中打印了“Hello World”这个词。

获取文件的大小

如果要获取文件的大小,可以使用文件类的length属性来获取文件的大小。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. File file = new File("E:/Example.txt")
  4. println "The file ${file.absolutePath} has ${file.length()} bytes"
  5. }
  6. }

上面的代码将显示文件的大小(以字节为单位)。

测试文件是否是目录

如果要查看路径是文件还是目录,可以使用File类的isFile和isDirectory选项。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. def file = new File('E:/')
  4. println "File? ${file.isFile()}"
  5. println "Directory? ${file.isDirectory()}"
  6. }
  7. }

上面的代码将显示以下输出 -

  1. File? false
  2. Directory? True

创建目录

如果要创建一个新目录,可以使用File类的mkdir函数。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. def file = new File('E:/Directory')
  4. file.mkdir()
  5. }
  6. }

如果目录E:\ Directory不存在,将创建它。

删除文件

如果要删除文件,可以使用File类的delete功能。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. def file = new File('E:/Example.txt')
  4. file.delete()
  5. }
  6. }

如果存在该文件将被删除。

复制文件

Groovy还提供将内容从一个文件复制到另一个文件的功能。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. def src = new File("E:/Example.txt")
  4. def dst = new File("E:/Example1.txt")
  5. dst << src.text
  6. }
  7. }

将创建文件Example1.txt,并将文件Example.txt的所有内容复制到此文件。

获取目录内容

Groovy还提供了列出驱动器中的驱动器和文件的功能。

以下示例显示如何使用File类的listRoots函数显示机器上的驱动器。

  1. class Example {
  2. static void main(String[] args) {
  3. def rootFiles = new File("test").listRoots()
  4. rootFiles.each {
  5. file -> println file.absolutePath
  6. }
  7. }
  8. }

根据机器上可用的驱动器,输出可能会有所不同。在标准机器上的输出将类似于下面的一个 -

  1. C:D:

以下示例显示如何使用File类的eachFile函数列出特定目录中的文件。

  1. class Example {
  2. static void main(String[] args) {
  3. new File("E:/Temp").eachFile() {
  4. file->println file.getAbsolutePath()
  5. }
  6. }
  7. }

输出将显示目录E:\ Temp中的所有文件

如果要递归显示目录及其子目录中的所有文件,则可以使用File类的eachFileRecurse函数。以下示例显示如何完成此操作。

  1. class Example {
  2. static void main(String[] args) {
  3. new File("E:/temp").eachFileRecurse() {
  4. file -> println file.getAbsolutePath()
  5. }
  6. }
  7. }

输出将显示目录E:\ Temp中的所有文件及其子目录(如果存在)。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号