groovy-输入输出

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

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

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

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

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

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

以及:

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

Further Information

时间: 2024-09-29 14:39:00

groovy-输入输出的相关文章

Groovy语法介绍

1. 介绍 Groovy 是基于 JRE 的脚本语言,和Perl,Python等等脚本语言一样,它能以快速简洁的方式来完成一些工作:如访问数据库,编写单元测试用例,快速实现产品原型等等. Groovy 是由James Strachan 和 Bob McWhirter 这两位天才发明的(JSR 241 2004 年 3 月).Groovy 完全以Java API为基础,使用了Java开发人员最熟悉的功能和库.Groovy 的语法近似Java,并吸收了 Ruby 的一些特点,因此 Groovy 在某

c语言-OJ的输入输出 C语言的输入输出多组测试数据

问题描述 OJ的输入输出 C语言的输入输出多组测试数据 请问OJ测试代码时是如何输入输出的?C语言如何实现多组数据的输出?比如这道题 "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999). Output 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等

使用Groovy开发Android应用

作者:snowdream Email:yanghui1986527#gmail.com QQ 群: 529327615原文地址:https://snowdream.github.io/blog/2016/08/12/android-develop-with-groovy/ 目标 本文旨在引导开发者使用Groovy来开发Android应用. 简介 名词解释 Groovy Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python.Ruby和Smalltalk的许多强大的特性

groovy/java自实现json解析器(3)JsonArray

底层数据结构实现 jsonArray的底层数据结构有列表(list)来维护.它的定义和构造函数初始化工作如下图所示.一般创建对象时默认不传参来构造一个空的列表. def jsonList //底层数据存储结构 /** * 构造函数,若不传参数,默认初始一个 */ def JsonArray( jsonList = null){ this.jsonList = jsonList == null ? [] :jsonList } 公共调用API 下面定义了一些对外提供的API接口工具函数: /**

Groovy探索 自定义Range 二 自定义Range类与Decorate模式

Decorate模式相信大家都比较熟悉了,是一个"BangOfFour"中最常用的模式之一,实现起来也相当的简单.如果有人不熟悉的话,可以看看<Groovy探索之Decorate模式>,那里面有一个本篇要沿用的例子. 这个例子就是咖啡馆里买咖啡的经典例子,咖啡有原味咖啡,还有根据顾客口味不同进行各种添加,比如加冰.加奶和加糖等等.顾客可以选择不加.加一样或加多样,各种加法的咖啡所买的价格也不一样. 这个例子是Decorate模式实现的最经典的例子.我们在这里希望使用自定义R

java-如何把数据的直接输入输出的方式变成文件的导入导出方式

问题描述 如何把数据的直接输入输出的方式变成文件的导入导出方式 求哪位大神解下下面的程序应该怎么写代码如何把数据的直接输入输出的方式变成文件的导入导出方式 在下面题中1.输入10个学生5门课成绩,分别用函数求:1)每个学生平均分:2)每门课的平均分:3)找出最高的分数所对应的学生和课程:4)求平均分方差: ,xi为某一学生的平均分. 解决方案 Java中的应该是这样写的:先导入包:import java.util.Scanner;下一步创建扫描仪:Scanner input=new Scanne

《Groovy语言规范》-语法

原文链接  译者:王山山 语法 本章节涵盖了Groovy编程语言的语法.Groovy语言的语法源自Java语法,为Groovy增强了特定构造,允许一定程度上的简化语法. 1.注释 1.1.单行注释 单行注释以//开始,在一行中任何位置都可以被发现.//后面的字符,直到一行的末尾都是注释的一部分. // a standalone single line comment println "hello" // a comment till the end of the line 1.2.多行

PHP是怎么进行输入输出的

 PHP输入和输出流是通过php://来访问的,它允许访问 PHP 的输入输出流.标准输入输出和错误描述符, 内存中.磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器. php://stdin, php://stdout 和 php://stderr php://stdin,php://stdout 和 php://stderr允许访问 PHP 进程相应的输入或者输出流. php://input php://input 是个可以访问请求的原始数据的只读流. POST 请求的情况下,最

Groovy MOP,实现传说中Java7.0的XML嵌入式语法

xml|语法 Groovy的Team Leader-- Guillaume Laforge说,MOP(Meta Object Protocol)是他最喜欢的Groovy特性.       使用MOP可以简单的对属性和方法进行拦截和解释,intercept 已经因为AOP而被大家熟悉.在Groovy里,通过重载GroovyObject的get/setProperty()函数和invokeMethod()函数,可以加入自己的hook和behavior,比Java简单的多的实现proxy和delega

用Groovy Template 生成代码

这是我的同事在文档极度贫乏的情况下,摸着石头过河搞出来的东西,向他致敬. 1.Groovy目前的开发状态  Groovy已经如期发布了最后一个是用Classic语法分析器的版本-beta10 ,以后的版本将基于JSR标准的parser,预计发三个jsr版本,每月一个, 到年中就可能有正式版出来了.    Eclipse和IDEA的插件也在开发中,不够都很挑版本,比如IDEA的就只能跑在IEDA5.0的EAP版本上. 2.Groovy Template与 内置xml语法Groovy官方网站上的链接