0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В некоторых случаях при работе с<strong>Groovy</strong>надо обеспечить автоматическое закрытие файла, что особенно актуально во время использования ресурсоёмких классов. Вопрос может быть актуален для таких методов, как close() или destroy(). Рассмотрим пример.</p>
1
<p>В некоторых случаях при работе с<strong>Groovy</strong>надо обеспечить автоматическое закрытие файла, что особенно актуально во время использования ресурсоёмких классов. Вопрос может быть актуален для таких методов, как close() или destroy(). Рассмотрим пример.</p>
2
<p>Давайте представим, что нам надо запрограммировать вывод текста '<strong>Hello</strong>' в файл<strong>output.txt</strong>. В языке Groovy для данной цели задействуется стандартный класс<strong>FileWriter</strong>:</p>
2
<p>Давайте представим, что нам надо запрограммировать вывод текста '<strong>Hello</strong>' в файл<strong>output.txt</strong>. В языке Groovy для данной цели задействуется стандартный класс<strong>FileWriter</strong>:</p>
3
<p>Итак, при создании экземпляра<strong>w</strong>класса<strong>FileWriter</strong>мы осуществляем передачу названия файла (это может быть относительный путь, как в примере, либо полный). В момент создания экземпляра происходит открытие файла для записи (или же файл создается заново -- в том случае, если до этого он не существовал). Далее метод класса<strong>write</strong>выводит в файл уже свой аргумент. Но тут стоит учесть, что вывода не будет, да и файл станет считаться занятым ровно до тех пор, пока мы не выполним его закрытие --- w.close().</p>
3
<p>Итак, при создании экземпляра<strong>w</strong>класса<strong>FileWriter</strong>мы осуществляем передачу названия файла (это может быть относительный путь, как в примере, либо полный). В момент создания экземпляра происходит открытие файла для записи (или же файл создается заново -- в том случае, если до этого он не существовал). Далее метод класса<strong>write</strong>выводит в файл уже свой аргумент. Но тут стоит учесть, что вывода не будет, да и файл станет считаться занятым ровно до тех пор, пока мы не выполним его закрытие --- w.close().</p>
4
<p>Чтобы потом не заботиться об этом закрытии, мы можем обеспечить автоматическое закрытие файла -- здесь пригодится метод<strong>withWriter</strong>класса<strong>FileWriter</strong>. В качестве параметра он принимает<strong>closure</strong>, выполняющий вывод, а потом автоматически закрывает наш файл:</p>
4
<p>Чтобы потом не заботиться об этом закрытии, мы можем обеспечить автоматическое закрытие файла -- здесь пригодится метод<strong>withWriter</strong>класса<strong>FileWriter</strong>. В качестве параметра он принимает<strong>closure</strong>, выполняющий вывод, а потом автоматически закрывает наш файл:</p>
5
<p>При этом в момент вызова метода<strong>withWriter</strong>параметр<strong>closure t</strong>примет информацию как о расположении файла, так и о его имени.</p>
5
<p>При этом в момент вызова метода<strong>withWriter</strong>параметр<strong>closure t</strong>примет информацию как о расположении файла, так и о его имени.</p>
6
<p>Осталось добавить, что мы можем не вводить имя экземпляра класса<strong>w</strong>, а использовать при желании иную форму:</p>
6
<p>Осталось добавить, что мы можем не вводить имя экземпляра класса<strong>w</strong>, а использовать при желании иную форму:</p>
7
<p><em>По материалам https://pessim50.ucoz.ru/Groovy.pdf.</em></p>
7
<p><em>По материалам https://pessim50.ucoz.ru/Groovy.pdf.</em></p>
8
<p>P. S. Интересует Groovy? Записывайтесь на курс "<a>Groovy Developer</a>"!.</p>
8
<p>P. S. Интересует Groovy? Записывайтесь на курс "<a>Groovy Developer</a>"!.</p>
9
9