|
|
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
Есть файл (пока текстовый), в котором хранятся строки с данными. В каждой строке есть поле с датой, когда данная строка была записана в файл. типа Код: java 1. 2. 3. Нужно удалить данные из файла за определенный день. Сейчас удаление происходит путем создания нового файла, перекачки в него данных за исключением данных с датой, за которую нужно очистить, и удалением старого файла. Есть в Java библиотеки для редактирования файла (т.е. удаление определенных строк) текущего файла, без создания нового? Можно даже библиотеки для XML-файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 17:40:43 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAЕсть в Java библиотеки для редактирования файла (т.е. удаление определенных строк) текущего файла, без создания нового?Если вам не страшно потерять данные, то можно "переписать поверх и усечь". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 17:48:02 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Так перед этим все данные в оперативку перегнать чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 17:55:29 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAТак перед этим все данные в оперативку перегнать чтоли?Или в память или в во временный файл. Нет, можно рассмотреть и разную экзотику, но зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 17:56:55 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Да так я сейчас и делаю. Файл большой. На время перекачки получаются два файла по 1Гб. Не много , но все же. Я с XML-файлами много не работал, но думал, что XML-файлы для таких задач и используются. Благодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:02:19 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCA, Или это мое заблуждение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:02:55 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
имхо при таких размерах пора задуматься о локальной бд, а не гонять гигабайты по винту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:06:05 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
chpashaимхо при таких размерах пора задуматься о локальной бд, а не гонять гигабайты по винту. +1 Ну или на крайняк хранить записи для каждого дня в отдельном файле, а главный файл будет состоять только из активных дней, нужно удалять - чикаем запись из главного файла, и потом асинхронно удаляем сам файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:10:52 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCA, АндрейCAфайлы для таких задач и используются. Благодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю. Файл это именованная последовательность байт. Разметка не имеет отношения к файловой системе и никак не упрощает задач по перестройке цепочек данных на диске. Распространенные файловые системы не позволяют вырезать из середины файла произвольные куски. Обычно поддерживается только обрезание конца файла. Лучше или пишите сразу по дням в отдельные файлы, или сделайте фиксированную длину строки. Тогда можно замещать удаленные строки строками, изъятыми с конца. Хотя это уже анальная акробатика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:16:05 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
забыл ник, Так бы и сделал. авторимхо при таких размерах пора задуматься о локальной бд, а не гонять гигабайты по винту. Но как раз и нужно эти данные держать отдельно от базы на другом диске, так как это дополнительная информация, которая пишется из базы данных. автор+1 Ну или на крайняк хранить записи для каждого дня в отдельном файле, а главный файл будет состоять только из активных дней, нужно удалять - чикаем запись из главного файла, и потом асинхронно удаляем сам файл Есть проблема на данный файл замапина таблица в базе Oracle. ЧТОБЫ ТОЛЬКО ЧИТАТЬ!. А мапить на произвольное количество файлов невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:16:12 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAБлагодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю.Как вам уже пояснили - любая библиотека ограничена возможностями файлового API. Лично я знаю только одну систему, где есть "файл базы данных" именно на уровне системы, а не на уровне конкретной СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:36:09 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCA, если уж это "БД на файлах" то я-бы каждый день создавал новый файл и грохал историю старых файлов согласно политике хранения. Это более рационально с точки зрения ресурсов файловой системы и главное быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:50:46 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAНо как раз и нужно эти данные держать отдельно от базы на другом диске, так как это дополнительная информация, которая пишется из базы данных. ну так и держи отдельно, но не в плоском файле, а в локальной базе типа sqlite&co ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 18:53:02 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
chpasha, авторну так и держи отдельно, но не в плоском файле, а в локальной базе типа sqlite&co Ах, если бы я был архитектором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 09:39:36 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAЯ с XML-файлами много не работал, но думал, что XML-файлы для таких задач и используются. Благодаря своей разметке, можно осуществлять быстрый поиск и быстрое удаление строк по битово прям из того же файла (как-то так). А конкретных библиотек в Java не знаю. Не знаю с чем ты работал но XML-файл это плохая альтернатива БД. Он может подходить для экспорта-импорта, ETL, и в качестве протоколов RPC. Но как модифицируемый объект в файловой системе он непригоден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 11:45:40 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAАх, если бы я был архитектором. ну ты уже хотя-бы знаешь как надо было, в отличии от твоего архитектора. в создавшейся ситуации либо переливай файлы как переливал, либо группируй по дням как посоветовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 12:06:34 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
mayton, maytonНо как модифицируемый объект в файловой системе он непригоден. А можно узнать почему? Текстовый файл лучше? Или csv? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 09:32:48 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCA, что такое в сабже файл? Он существует в 2-х ипостасях. - сохранённый на диске - прочитанный в оперативке Если переключить механизмы записи в файл на диске НА API в оперативке (класс-объект). То сама задача теряет смысл. Не важно какой формат будет на HDD. Хоть бинарный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 09:53:51 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAmayton, maytonНо как модифицируемый объект в файловой системе он непригоден. А можно узнать почему? Текстовый файл лучше? Или csv? Почти и текстовый и csv болеют теми-же болезнями. Эффективное удаление/обновление строк возможно только для специальных форматов которые соптимизированы для этого. Тоесть имеют внутреннюю бинарную структуру сегментов, экстентов, блоков e.t.c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 09:55:12 |
|
||
|
Как лучше реализовать выборочное удаление записей из файла?
|
|||
|---|---|---|---|
|
#18+
АндрейCAЕсть файл (пока текстовый), вот это является ВХОДНЫМ параметром в задачу - константой. Если это обменный формат внешний к ИС, то чётко прописан формат файла. Т.е. вопрос не имеет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 09:57:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37891587&tid=2131287]: |
0ms |
get settings: |
12ms |
get forum list: |
25ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 296ms |
| total: | 489ms |

| 0 / 0 |
