groovy-输入输出

简介:

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


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/3349057.html,如需转载请自行联系原作者
相关文章
|
编解码 JavaScript iOS开发
如何生成HLS协议的M3U8文件
什么是HLS协议:   HLS(Http Live Streaming)是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。
4507 0
|
缓存 NoSQL 数据库
高性能Web服务器架构设计
【8月更文第28天】在当今互联网时代,网站的响应速度直接影响用户体验和业务成功率。因此,构建一个高性能的Web服务器架构至关重要。本文将从硬件配置、软件架构以及网络设置三个方面探讨如何提高Web服务器的性能,并提供一些实际的代码示例。
791 0
|
XML IDE Shell
kvm安装Windows7旗舰版(二)
kvm安装Windows7旗舰版
729 0
kvm安装Windows7旗舰版(二)
|
编解码 JavaScript 容器
js 获取浏览器相关的宽高尺寸
js 获取浏览器相关的宽高尺寸
327 0
js 获取浏览器相关的宽高尺寸
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
299 0
|
SQL 算法 安全
odps是什么?
ODPS(Open Data Processing Service),原是阿里云从 09年开始自研的大规模批量计算引擎,2016 年更名为MaxCompute。2022云栖大会上,阿里云ODPS全新升级为一体化大数据平台,存储、调度、元数据一体化融合 ,从 Processing 升级为 Platform,即 Open Data Platform and Service。提供了离线计算、实时交互式分析、机器学习等可扩展的智能计算引擎,满足用户多元化数据计算需求。
78601 133
odps是什么?
|
Kubernetes 网络协议 Linux
Cilium 系列 -5-Cilium 替换 KubeProxy
Cilium 系列 -5-Cilium 替换 KubeProxy
|
Python
「Python系列」Python推导式
Python推导式是一种简洁且高效的代码编写方式,可以在一行代码中完成常见的循环和集合操作。Python推导式包括列表推导式、字典推导式、集合推导式和生成器推导式。
390 0
|
存储 达摩院 云计算
排产排程问题,如何让利益最大化?(达摩院Mindopt案例)
本篇我们要讲述的案例是工厂生产相关,一个好的管理者会合理安排生产计划,让生产机器在固定的时间,不同的产品,生产效率的差异中尽可能的让工厂的利益最大化。那么面对这一问题,如果计算量比较大,该如何是好呢?
排产排程问题,如何让利益最大化?(达摩院Mindopt案例)
|
设计模式 NoSQL 测试技术
Go语言实现23种设计模式
设计模式是一套被广泛应用于软件开发中的解决问题的经验总结,它可以帮助开发人员设计出更加灵活、可维护和可扩展的代码。本文将探讨使用设计模式的好处,并对常见的设计模式进行分类和介绍。此外,我们还将提供设计模式的相关链接,以便读者深入了解各个设计模式的细节和实例。最后,我们将探讨如何学习设计模式以及如何在日常开发和项目过程中应用设计模式,以及使用设计模式所带来的好处。
993 0
Go语言实现23种设计模式
下一篇
开通oss服务