|
|
|
Построчное считывание из файла
|
|||
|---|---|---|---|
|
#18+
Вобщем есть лог, который постоянно растет. Необходимо время от времени сливать из него новую инфу в базу. Построчно LineNumberReader'ом считываю и парсю строки. Вопрос вобщем в том, как при следующей заливке данных перемещаться на нужную мне строку (на которой закончил в прошлый раз) Сначала обнадежил меня один метод LineNumberReader'а - setLineNumber(int), думал он меня спасет. Но этот метод просто устанавливает счетчик. Может кто сталкивался с подобной проблемой, как ее решили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 16:33:44 |
|
||
|
Построчное считывание из файла
|
|||
|---|---|---|---|
|
#18+
а лог кто ведет? вы на этот процесс повлиять можете? можно после каждого считывания тереть файл лога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 16:48:01 |
|
||
|
Построчное считывание из файла
|
|||
|---|---|---|---|
|
#18+
есть метод skip(long n) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 16:55:48 |
|
||
|
Построчное считывание из файла
|
|||
|---|---|---|---|
|
#18+
Хрен его знает... попробуй при чтении подсчитывать длины строк (len[]) и их количество (count) и запоминать до следующего сеанса. А потом только дёрни skip(sum(len)+count*2); // ИМХО (для Linux умножать на 2 не надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 17:08:50 |
|
||
|
Построчное считывание из файла
|
|||
|---|---|---|---|
|
#18+
автора лог кто ведет? вы на этот процесс повлиять можете? IBM'овкий SiteAnalyzer. Нет немогу. авторможно после каждого считывания тереть файл лога. могу только читать, пока SiteAnalyzer его незакрает и непереименует в бак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 17:09:43 |
|
||
|
Построчное считывание из файла
|
|||
|---|---|---|---|
|
#18+
Согласен с mayton . Насколько я понимаю, имена файлов с логами ограничены каким-то набором. То есть чтение происходит из одних и тех же файлов. Тогда можно просто каждому имени файла с протоколом работы сопоставить количество считанных байт и делать skip(). Даже высчитывать ничего не надо - после каждого вызова операции чтения устанавливаем счетчик в размер файла. Я тут набросал быстренько уже иерархию классов, фабричный метод - а потом понял, как проще написать :) PS Для Windows тоже я думаю умножать не надо, тут надо смотреть в какой кодировке файл, нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 17:19:35 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34178357&tid=2147286]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
196ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 477ms |

| 0 / 0 |
