ценность таких советов равна нулю. поэтому: - разверни свою мысль, чтоб стало понятно что ты имеешь в виду, в каких случаях, в каком окружении... - отвергая - предлагай. Приведи код своего решения, чтоб можно было увидеть альтернативу, плюсы и минусы.
А вы не видите что вы дескриптор файла открываете и закрываете сами? Это ж очевидно. Поэтому решение на классе более рационально. Когда сделаны все работы и удалён объект, закрывается и дескриптор доступа и уничтожается ресурс. Ибо открытие и закрытие в цикле с большим числом итерация означает что ваши ресурсы тратятся в большей степени на эти две задачи, чем на задачи самой функции. Вот и всё замечание если оно для вас было не очевидным.
Так открой и закрой как закончишь работать с ним. Поэтому и решение упаковывания в функцию операции совершенно не рационально в контексте задач тса, когда он твою функцию по циклам будет гонять.
Для отдельного файла как раз работа и завершается, ибо в функцию передается МАССИВ со всеми интересующими юзера строками. далее может быть все что угодно. может другой файл, может этот же. этого никто незнает.