Приведение не меняет объем памяти, занимаемый объектом.Он просто меняет тип среды выполнения.
Если вы можете выполнять эти операции для каждой строки, то просто выполняйте операцию непосредственно внутри цикла, в котором вы читаете одну строку.
while ((line = reader.readLine()) != null) {
line = process(line);
writer.println(line);
}
Таким образом, каждый раз вместо целого файла вы фактически получаете только одну строку в памяти Java.
Или если вам нужно выполнить эти операции на основе всего файла CSV(т. е. эти операции зависят от всех строк), тогда наиболее эффективный вариант - импортировать файл CSV в реальную базу данных SQL, а затем использовать операторы SQL для изменения данных и затем экспортировать их в файл CSV.еще раз.