|
|
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
Подскажите как решщить такую задачу. Есть текстовый файлик.Известно, что в него могут только добавлять текст. надо написать такой фунционал, чтобы после запуска программы я получал уведомления об добавлении чего-то в этот файлик и самое главное конкретно чего. то есть после включения приложения добавили строчку "Вася-лох" - мне надо надо получить только ее независимо от того единственная эта запись или нет. То, что файлик изменился умеет показывать WatchServcie(since java 7), но ЧТО конкретно в нём поменялось - я так понимаю ему недоступно. Что посоветуете для решения этой проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:01 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
redwhite90, решений тут может быть много. Они по большей части выходят за рамки java. Операционку сменить например. И файловую систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:07 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
Самое простое, запоминать последнюю позицию. В следующий раз показывать всё, что после нее добавилось и запоминать уже новую позицию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:09 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
mayton, Я не понимаю о чем Вы. Хотелось бы больше конкретики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:10 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
wadmanСамое простое, запоминать последнюю позицию. В следующий раз показывать всё, что после нее добавилось и запоминать уже новую позицию. в этом случае мы сами должны опрашивать файловую систему. Можем ли мы как-то подписать на событие изменения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:13 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
wadman, хотя вкупе с watcService это звучит логично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:14 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
redwhite90в этом случае мы сами должны опрашивать файловую систему. Можем ли мы как-то подписать на событие изменения? На сколько я понимаю WatchService тоже сам по себе события не присылает. А что мешает использовать WatchService и запоминать размер файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:15 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
redwhite90, Ну, если по диагонали посмотреть javadoc api, то сделать класс AddChecker, и еще один ... implements WatchEvent<AddChecker>, и возможно еще добавить ~Event.kind, зарегистрировать в WatchService и т.д., только вот все-равно придется руками делать логику (тот же курсор). Разница только в том, что у вас основной цикл программы упрощается немного. Хотя модно. Если файл не один, то, может и стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:54 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
redwhite90mayton, Я не понимаю о чем Вы. Хотелось бы больше конкретики. Ты хочешь мониторить изменения в одном файле? Или во многих? Если во многих то их количество как измеряется сотни? Миллионы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 17:55 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
maytonТы хочешь мониторить изменения в одном файле? Или во многих? Если во многих то их количество как измеряется сотни? Миллионы? изменения в файлах, располагающихся в папке. Количество - до сотни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 18:25 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
Сохранять во временной папки (или другом хранилище) Сравнивать с сохраненным старым содержимым IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 19:12 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, BlazkowiczНа сколько я понимаю WatchService тоже сам по себе события не присылает. А что мешает использовать WatchService и запоминать размер файла? http://bigdatanerd.wordpress.com/2011/09/20/java-7-feature-java-watchservice-hello-world/ ну да, вечный цикл как-то не камильфо, но что делать. а как по размеру понять насколько каретку сдвинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 19:13 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevСохранять во временной папки (или другом хранилище) Сравнивать с сохраненным старым содержимым IMHO & AFAIK Это ведь очень долго.После каждого добавления сравнивать два файла до момента когда один закончится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 19:16 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
man tail example: tail -f /var/log/syslog ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 20:49 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
redwhite90Что посоветуете для решения этой проблемы? Commons IO . Для ситуации "данные только добавляются" - достаточно запомнить прежний размер файла и (тем или иным способом) начинать читать после запомненой позиции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 21:29 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
redwhite90Leonid KudryavtsevСохранять во временной папки (или другом хранилище) Сравнивать с сохраненным старым содержимым IMHO & AFAIK Это ведь очень долго.После каждого добавления сравнивать два файла до момента когда один закончится. По сути тебе нужен слегка изменённый rsync который перед синхронизацией вызадавал-бы тебе difference. А оптимизации дискового трафика при сравнении в rsync были заложены изначально и базируются на контрольных суммах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2014, 09:16 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
maytonredwhite90пропущено... Это ведь очень долго.После каждого добавления сравнивать два файла до момента когда один закончится. По сути тебе нужен слегка изменённый rsync который перед синхронизацией вызадавал-бы тебе difference. А оптимизации дискового трафика при сравнении в rsync были заложены изначально и базируются на контрольных суммах. rsync самому написать это сильно. P.S. я побаиваюсь линукса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2014, 22:32 |
|
||
|
Как получить diff изменения файлика?
|
|||
|---|---|---|---|
|
#18+
кажется всё написано до нас: https://code.google.com/p/java-diff-utils/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 12:17 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=171&tid=2127027]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 345ms |

| 0 / 0 |
