Спасибо, Тим, я также нашел ваш ответ очень полезным, просто небольшая заметка: похоже, вы не закрыли поток URL.Я только начинаю с Groovy, и я слышал, что он закрывает пары при выходе из закрытия, чтобы мы могли изменить код следующим образом:
public void download(def address) {
new File("${address.tokenize('/')[-1]}.png").withOutputStream { out ->
new URL(address).withInputStream { from -> out << from; }
}
}