groovy-输入输出

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

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

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

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

若是你但愿使用在reader/writer object或者input/output stream object的时候,有一些辅助方法来帮助你处理资源的关闭,那么这个时候你能够使用闭包。他将自动的在异常发生的时候关闭全部的资源,好比下面的代码:code

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 }

以及:orm

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 Informationhtm

相关文章
相关标签/搜索