| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Как правильно прочитать файл |
| Автор: barin_Student 4.4.2008, 06:40 |
| Собственно имеется файл , он будет хранилищем , то есть в него периодически будет писать в конец файла , и браться с начала(при этом еще забранное удаляться должно) , как мне правильно реализовать обращение к файлу(посколько несколько потоков будет одновременно работать с ним), и как мне считывать первую строку и переписывать файл , чтоб после считывания и удаления самой верхней строки файл переписывался со сдвигом(аналог очереди).. Пока пытаюсь что нить сделать мало что выходит... Буду благодарен за помощь. |
| Автор: Aikus 4.4.2008, 08:10 |
| Если не секрет, обязательно делать это из одного файла? Может лучше будет сделать временный, или вобще использовать БД? |
| Автор: barin_Student 4.4.2008, 08:27 |
| Ну собственно я немного концепцию требований передумал , решил я не использовать файл как переменную , а просто использовать как хранилище данных при экстренном закрыти программы, функции которые надо реализовать для данного файла: 1)Запись в файл определенного формата - зделанно. 2)Чтение из файла с начала(с самого верха), удаление прочтенной записи, - пока еще не знаю какой алгоритм получиться... 3)Ну и собственно парсинг прочтенных строк из файла и приведение к нужному типу данных - выполненно.. Так что остался только вопрос номер 2 , если кто уже реализовывал это или знает как , то от помощи не откажусь... |
| Автор: barin_Student 4.4.2008, 08:53 |
| Вопщем как правильно прочитать файл и как удалить из файла запись? |
| Автор: math64 4.4.2008, 09:02 |
| Можно каждые сутки (час, минуту - в зависимости от объёма данных) создавать новый файл и удалять полностью прочтённые. |
| Автор: barin_Student 4.4.2008, 09:06 |
| Нет , так мне не надо, я записываю строки содержищие данные, которые я должен отправить, но не отправил , так как это стояло в очереди , но программа остановилась по разным причинам, при старте я проверю есть ли записи в файле , то что есть ставлю в очередь и отправляю(паралельно удаляю ту запись , которая уже прочитана . Вот как мне надо. |
| Автор: math64 4.4.2008, 09:22 |
| Можно каждая запись - один файл Можно в записи оставить место для метки "прочтенная" Можно создать файл опредённого размера и по достижении конца начинать писать в начало (размер файла должен быть достаточен чтобы хранить все непрочтённые записи) Удалять же прочтённые записи переписывая непрочтённые в начало файла - нерентабельно. |
| Автор: barin_Student 4.4.2008, 09:29 | ||
Знаю , но именно так мне надо..Вот как сделать это пока не знаю. Добавлено через 2 минуты и 12 секунд Скажем а в файл объект писать можно и читать как объект? Например PDU(из SMPP протокола) помойму же возможно? |
| Автор: barin_Student 4.4.2008, 11:20 |
| Счас пробую разные методы , чуть позже отпишусь как зделал, |