HTML Diff
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