groovy-输入输出

摘要:
当发生异常时,它将自动关闭所有资源,例如以下代码:检查源代码打印帮助1defcount=0,MAXSIZE=1002newFile。使用reader{reader-˃3while(reader.readLine())!

Groovy为I/O提供了一系列的helper methods ,所有的这些方法都适用于标准的 Java Reader/Writer ,InputStream/OutputStream 和File 以及URL classes.

闭包的使用可以确保资源被正确的关闭,比如遍历文件的每一行可以使用下面的代码:

1new File("foo.txt").eachLine { line -> println(line) }

如果在某些情况下,println()方法抛出了异常,那么eachLine()方法将确保资源被正确的关闭,同样的,如果在读取的时候发生了异常,那么资源也将会被正确的关闭。

如果你希望使用在reader/writer object或者input/output stream object的时候,有一些辅助方法来帮助你处理资源的关闭,那么这个时候你可以使用闭包。他将自动的在异常发生的时候关闭所有的资源,比如下面的代码:

1def count=0, MAXSIZE=100
2new File("foo.txt").withReader { reader ->
3 while (reader.readLine() != null) {
4 if (++count > MAXSIZE) throw new RuntimeException('File too large!')
5 }
6}

以及:

1def fields = ["a":"1""b":"2""c":"3"]
2new File("foo.ini").withWriter { out ->
3 fields.each() { key, value ->
4 out.writeLine("${key}=${value}")
5 }
6}

Further Information

免责声明:文章转载自《groovy-输入输出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mac下搭建php开发环境【转】canal部署启动的时候报错com.alibaba.druid.pool.DruidDataSource下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

groovy学习7groovy sql 雪霁霜飞 博客园

groovy学习7-groovy sql - 雪霁霜飞 - 博客园 groovy学习7-groovy sql 发现groovy操作数据库很简单,一行import,2行操作代码。 代码 import groovy.sql.Sql /** * @author <a href="mailto:zhangting@taobao.com">张...

【java web】java运行预编译Groovy脚本

在JVM中执行Groovy类有两种方式: 使用Groovy编译全部的*.groovy为java的*.class文件,把这些*.class文件放在java类路径中,通过java类载入器来载入这些类。 通过groovy类载入器在执行时直接载入*.groovy文件并生成对象。在这样的方式下,没有生成不论什么*.class,可是生成了一个java.lang.C...

groovy初体验:groovy在java中的应用

第一次接触groovy,主要是在java中嵌入groovy脚本,因为groovy和java的融合度非常好。 先放上来第一次写的一段groovy: 其实它完成的就是一句java的system.out操作,主要为了理解binding在groovy中的应用 说一下背景,这里的功能是为了打印日志,本来用的是system.out,结果师父为了让我接触一下groov...

Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!

有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能。查看最流行的扩展机制,比较性能并分析哪一个是最好的。 这是乐队之战,JMeter风格。 Beanshell V. JSR223 V. Java Request Sampler 在我们之前的帖子中, JMeter Performance和Tuning Tips(由fantastik Phi...

groovy–运算符重载

Groovy支持运算符重载,各种运算符被映射到普通的java对象的方法调用,这就使得开发者可以利用运算符重载的优势来编写自己的Java或者groovy对象。 下面的表格描述了groovy中的操作符所映射到的方法: Operator Method a + b a.plus(b) a – b a.minus(b) a * b a.multip...

用groovy脚本进行每日工作的自动化【groovy】

我们可以用groovy编写日常的批处理脚本,类似windows下的bat或者unix下的shell。其具体的编写方式非常简单,比如我们想要执行一个dir的命令,只要编写一个test.groovy,其中内容为: println 'cmd /c dir'.execute().text 因为dir这个命令是在cmd命令中的,因此需要用cmd /c来进行调用。 具...