Применяем closures для автоматического закрытия файлов | OTUS >
У этой рекламы есть минус
У этой рекламы есть минус
−10% на курсы со стартом в ноябре. Успейте получить выгоду, 10 числа акция закончится
−10% на курсы со стартом в ноябре. Успейте получить выгоду, 10 числа акция закончится
Выбрать курс

Применяем closures для автоматического закрытия файлов

В некоторых случаях при работе с Groovy надо обеспечить автоматическое закрытие файла, что особенно актуально во время использования ресурсоёмких классов. Вопрос может быть актуален для таких методов, как close() или destroy(). Рассмотрим пример.

4-20219-efbbf8.png

Давайте представим, что нам надо запрограммировать вывод текста 'Hello' в файл output.txt. В языке Groovy для данной цели задействуется стандартный класс FileWriter:

1-20219-3ee145.png

Итак, при создании экземпляра w класса FileWriter мы осуществляем передачу названия файла (это может быть относительный путь, как в примере, либо полный). В момент создания экземпляра происходит открытие файла для записи (или же файл создается заново -- в том случае, если до этого он не существовал). Далее метод класса write выводит в файл уже свой аргумент. Но тут стоит учесть, что вывода не будет, да и файл станет считаться занятым ровно до тех пор, пока мы не выполним его закрытие --- w.close().

Чтобы потом не заботиться об этом закрытии, мы можем обеспечить автоматическое закрытие файла -- здесь пригодится метод withWriter класса FileWriter. В качестве параметра он принимает closure, выполняющий вывод, а потом автоматически закрывает наш файл:

2-20219-4b1fe9.png

При этом в момент вызова метода withWriter параметр closure t примет информацию как о расположении файла, так и о его имени.

Осталось добавить, что мы можем не вводить имя экземпляра класса w, а использовать при желании иную форму:

3-20219-6f4231.png

По материалам https://pessim50.ucoz.ru/Groovy.pdf.

P. S. Интересует Groovy? Записывайтесь на курс "Groovy Developer"!.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Снизили цены на 10 дней
Снизили цены на 10 дней
−10% на все курсы со стартом в ноябре, акция действует до 10 числа. Выбирайте направление — начинайте обучение
−10% на все курсы со стартом в ноябре, акция действует до 10 числа. Выбирайте направление — начинайте обучение