Groovy开发工具包

Groovy Development Kit (GDK) 是一组增强Java类库的方法,简化了如IO操作、集合处理等任务。GDK使得文件读写、遍历文件树、序列化对象以及执行外部进程变得更加便捷。此外,它还提供了丰富的集合操作,包括列表、Map、范围和操作符的使用。
摘要由CSDN通过智能技术生成

本文参考自The Groovy Development Kit,一些代码直接引用了源文档。

Groovy开发工具包(The Groovy Development Kit)的名字一开始迷惑了我,我以为是一些IDE的插件之类的。在实际看了原文档之后,我才明白这是Groovy提供的一组类库和方法,让我们开发更加方便。

IO功能

在Java中读写文件非常麻烦。由于JDK类库设计问题,以及Java本身的局限性,导致Java自带的功能很不好用。比如说Java的读写流,使用了装饰器设计模式,原意是让我们能够自行组合各种流,实现功能。但是实际情况是这让类库变得很复杂,我们哪怕是简单读写文件也需要声明一个很长的嵌套流。

Groovy为JDK的很多类提供了很多助手方法,让文件读写变得异常简单。列举如下。如果需要查看完整的GDK文档,可以查看GDK API文档

读取文件

Groovy提供了非常方便的文件读写方式。而且在使用withXXX方法或者闭包中抛出异常时,Groovy会自动关闭文件资源。所以我们可以放心的使用这些API。首先来看看文件读取。

Groovy为我们提供了丰富的功能。如果只需要简单读一个文件,简单的几行代码就可以做到。这些方法很简单,看代码就能知道怎么用。

    static void readingFiles() {
        def baseDir = /C:\Windows\System32\drivers\etc/
        def filename = 'hosts'

        //读取文件
        def file = new File(baseDir, filename)
        file.eachLine {
            println(it)
        }

        //同时获取行号
        file.eachLine { line, num ->
            println("line $num:$line")
        }

        //获取字节流
        byte[] contents = file.bytes
        println(contents.join(''))
        //获取行列表
        String[] lines = file.collect { it }
        println(lines.join('\n'))

        //将文件用作输入流
        file.withInputStream {
            //在这里执行操作
        }

    }

写入文件

写文件和读文件一样简单。我们可以使用Writer来写文件。文件编码可以不指定,默认是UTF-8。

new File(baseDir,'haiku.txt').withWriter('utf-8') { writer ->
    writer.writeLine 'Into the ancient pond'
    writer.writeLine 'A frog jumps'
    writer.writeLine 'Water’s sound!'
}

还可以使用左移操作符更简单的写文件,这种方式是追加方式。

new File(baseDir,'haiku.txt') << '这是一段文字'

还可以直接写入文件的字节流。

file.bytes = [66,22,11]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值