madmasles
Самый быстрый и лёгкий - загнать всю инфу в память и там с ней работать. Но этот вариант не всегда подходит, если речь идёт о слишком больших объёмах данных.
Медленный и муторный, но эффективный с точки зрения объёма занимаемой памяти - работа с файлом напрямую.
В дополнение, хочется отметить, что первое и второе может быть объеденено для полного конценцуса, т.е. - золотая середина. В память загоняется не вся инфа, а её части по мере необходимости.
Так что, исходить нужно из задач, стоящих перед Вами. Отсюда и будет выбираться оптимальный путь...
Ну как-то так
ЗЫ: А извращаться над каждым из вариантов можно сколь угодно много, хотя от перестановки мест слагаемых... ну разве что сокращать код и заниматься оптимизацией.