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

相關文章
相關標籤/搜索