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

目录
相关文章
|
7月前
|
Java API
Java中文件与输入输出
Java中文件与输入输出
|
7月前
|
SQL Java 编译器
在尝试使用Groovy编译器将一个字符串编译成一个类
在尝试使用Groovy编译器将一个字符串编译成一个类【1月更文挑战第22天】【1月更文挑战第109篇】
39 1
|
6月前
编写Groovy Hello World 程序
编写Groovy Hello World 程序
|
7月前
|
Java Linux C语言
【详识JAVA语言】输入输出
【详识JAVA语言】输入输出
46 1
|
7月前
|
C++
在C++语言中文件的输入输出
在C++语言中文件的输入输出
37 0
|
Java C++
Java/C++输入输出特定格式模板总结
Java/C++输入输出特定格式模板总结
61 0
Java:命令行/文件的输入输出
Java:命令行/文件的输入输出
138 0
|
存储 C语言
一个C语言命令行解析器
一个C语言命令行解析器
153 0
一个C语言命令行解析器
|
Java 数据安全/隐私保护 Python
【Python】3_输入输出与类型转换
六、输出 在Python中的输出使用print函数 # 基本输出 支持换行输出,将一行的字用两次print来输出,中间可以加东西。 而且Python提供了一种新的对变量输出的方法, 使用f和花括号。 age = 18 # 需求:输出 我的年龄是18岁 print("我的年龄是%d岁" % age) # 我的年龄是18岁 print(f"我的年龄是{age}岁") # 我的年龄是18岁 # 必须在前面有f(大小写都可以),这样才能用{} # Python3.6版本开始支持f-string,占位统一使用{}占位,填充的数据直接写在{}里面 print('输出') print(12)
142 0
|
Java
java文件操作输入输出
java文件操作输入输出
532 0