powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как лучше реализовать выборочное удаление записей из файла?
20 сообщений из 20, страница 1 из 1
Как лучше реализовать выборочное удаление записей из файла?
    #37889549
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть файл (пока текстовый), в котором хранятся строки с данными. В каждой строке есть поле с датой, когда данная строка была записана в файл.
типа
Код: java
1.
2.
3.
текст1  01-02-2011 текст2
текст1  01-02-2011 текст2
текст1  01-03-2011 текст2


Нужно удалить данные из файла за определенный день. Сейчас удаление происходит путем создания нового файла, перекачки в него данных за исключением данных с датой, за которую нужно очистить, и удалением старого файла.
Есть в Java библиотеки для редактирования файла (т.е. удаление определенных строк) текущего файла, без создания нового? Можно даже библиотеки для XML-файлов.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889563
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAЕсть в Java библиотеки для редактирования файла (т.е. удаление определенных строк) текущего файла, без создания нового?Если вам не страшно потерять данные, то можно "переписать поверх и усечь".
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889576
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Так перед этим все данные в оперативку перегнать чтоли?
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889579
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAТак перед этим все данные в оперативку перегнать чтоли?Или в память или в во временный файл.
Нет, можно рассмотреть и разную экзотику, но зачем?
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889588
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Да так я сейчас и делаю.
Файл большой. На время перекачки получаются два файла по 1Гб. Не много , но все же.



Я с XML-файлами много не работал, но думал, что XML-файлы для таких задач и используются. Благодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889589
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АндрейCA,

Или это мое заблуждение?
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889593
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо при таких размерах пора задуматься о локальной бд, а не гонять гигабайты по винту.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889597
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaимхо при таких размерах пора задуматься о локальной бд, а не гонять гигабайты по винту.
+1 Ну или на крайняк хранить записи для каждого дня в отдельном файле, а главный файл будет состоять только из активных дней, нужно удалять - чикаем запись из главного файла, и потом асинхронно удаляем сам файл
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889599
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCA,


АндрейCAфайлы для таких задач и используются. Благодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю.

Файл это именованная последовательность байт. Разметка не имеет отношения к файловой системе и никак не упрощает задач по перестройке цепочек данных на диске. Распространенные файловые системы не позволяют вырезать из середины файла произвольные куски. Обычно поддерживается только обрезание конца файла. Лучше или пишите сразу по дням в отдельные файлы, или сделайте фиксированную длину строки. Тогда можно замещать удаленные строки строками, изъятыми с конца. Хотя это уже анальная акробатика.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889600
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,
Так бы и сделал.

авторимхо при таких размерах пора задуматься о локальной бд, а не гонять гигабайты по винту.
Но как раз и нужно эти данные держать отдельно от базы на другом диске, так как это дополнительная информация, которая пишется из базы данных.

автор+1 Ну или на крайняк хранить записи для каждого дня в отдельном файле, а главный файл будет состоять только из активных дней, нужно удалять - чикаем запись из главного файла, и потом асинхронно удаляем сам файл
Есть проблема на данный файл замапина таблица в базе Oracle. ЧТОБЫ ТОЛЬКО ЧИТАТЬ!. А мапить на произвольное количество файлов невозможно.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889619
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAБлагодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю.Как вам уже пояснили - любая библиотека ограничена возможностями файлового API.
Лично я знаю только одну систему, где есть "файл базы данных" именно на уровне системы, а не на уровне конкретной СУБД.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889634
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCA, если уж это "БД на файлах" то я-бы каждый день создавал новый файл
и грохал историю старых файлов согласно политике хранения. Это более
рационально с точки зрения ресурсов файловой системы и главное быстро
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37889641
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAНо как раз и нужно эти данные держать отдельно от базы на другом диске, так как это дополнительная информация, которая пишется из базы данных.
ну так и держи отдельно, но не в плоском файле, а в локальной базе типа sqlite&co
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37890037
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,
авторну так и держи отдельно, но не в плоском файле, а в локальной базе типа sqlite&co
Ах, если бы я был архитектором.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37890235
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAЯ с XML-файлами много не работал, но думал, что XML-файлы для таких задач и используются. Благодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю.
Не знаю с чем ты работал но XML-файл это плохая альтернатива БД. Он может
подходить для экспорта-импорта, ETL, и в качестве протоколов RPC. Но как
модифицируемый объект в файловой системе он непригоден.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37890269
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAАх, если бы я был архитектором.
ну ты уже хотя-бы знаешь как надо было, в отличии от твоего архитектора. в создавшейся ситуации либо переливай файлы как переливал, либо группируй по дням как посоветовали.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37891587
АндрейCA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
maytonНо как модифицируемый объект в файловой системе он непригоден.
А можно узнать почему?
Текстовый файл лучше? Или csv?
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37891599
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCA,
что такое в сабже файл?
Он существует в 2-х ипостасях.
- сохранённый на диске
- прочитанный в оперативке
Если переключить механизмы записи в файл на диске НА API в оперативке (класс-объект).
То сама задача теряет смысл. Не важно какой формат будет на HDD. Хоть бинарный.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37891601
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAmayton,
maytonНо как модифицируемый объект в файловой системе он непригоден.
А можно узнать почему?
Текстовый файл лучше? Или csv?
Почти и текстовый и csv болеют теми-же болезнями.
Эффективное удаление/обновление строк возможно только
для специальных форматов которые соптимизированы
для этого. Тоесть имеют внутреннюю бинарную структуру
сегментов, экстентов, блоков e.t.c.
...
Рейтинг: 0 / 0
Как лучше реализовать выборочное удаление записей из файла?
    #37891604
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрейCAЕсть файл (пока текстовый),
вот это является ВХОДНЫМ параметром в задачу - константой.
Если это обменный формат внешний к ИС, то чётко прописан формат файла.
Т.е. вопрос не имеет смысла.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как лучше реализовать выборочное удаление записей из файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]