Enchantner
Все, даже если мы читали эти данные итератором - большой кусок памяти, в который была прочтена эта строка, останется неосвобожденным до конца работы приложения. Верно?
С чего бы.
Маловероятно, что GC освободит всю память сразу после чтения следующей строки - что логично, вдруг следующая строка у вас такая же длинная или вы решили seek() сделать.
Первый цикл очистки GC пройдет сразу после выходя из цикла чтения.
Если вы закрываете файл - следующий цикл очистки.
Если GC в первом цикле не очистил память, он это сделает во втором.
Но это лирика, я не уверен в правильности постановки задачи.
Понимаете, пока даже не говорим о выборе инструмента и не обсуждаем вопрос обработки очень больших данных, не помещающихся целиком в память.
А ведь могут быть и данные, которые целиком считать нельзя, т.к. объем памяти плюс дисковый своп не могут их вместить. :)
Программистские задачи возникают из определенных задач из конкретной предметной области.