Скажем, например, у Вас есть CSV-файл с заголовками, которые находятся в нижней части файла, как например:Предпочтительный метод повторного упорядочения файлов CSV по строке в Java
1,2,3,4
1,2,3,4
1,2,3,4
a,b,c,d
Вы хотите, чтобы изменить порядок его как таковой
a,b,c,d
1,2,3,4
1,2,3,4
1,2,3,4
У меня в основном есть два способа сделать это. Мне было интересно, что было более эффективным с точки зрения использования памяти. Я подозреваю, что первый случай, но было интересно, были ли разные мнения.
Первый метод:
- Итерация через файл, пока не дойдете до последней строки, хранить это в переменной.
- Запись переменной в файл
- Итерацию через файл, повторяющую каждую строку, за исключением последней.
Второй метод:
- Итерация файла, хранящего каждую строку как элемент в ArrayList
- написать последний элемент в ArrayList в файл
- перебрать ArrayList писать каждый элемент в файл, за исключением последний.
Меня всегда учили помещать вещи в память (второй способ), когда вам нужно случайным образом получить доступ к переменной в наборе данных (это способ DOM), тогда как если вы просто читаете/записываете файлы чтобы использовать первый способ («SAX» в xml-терминах), я не могу не думать о том, что повторение итерации по набору данных в два раза (первый способ) действительно неаккуратно. Есть ли лучшие способы сделать это?
Я бы предложил просто удалить последнюю строку в файле и добавить строку в существующий файл, но нет простого способа сделать это из моего быстрого поиска в Google. –