powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить diff изменения файлика?
18 сообщений из 18, страница 1 из 1
Как получить diff изменения файлика?
    #38672070
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как решщить такую задачу.

Есть текстовый файлик.Известно, что в него могут только добавлять текст. надо написать такой фунционал, чтобы после запуска программы я получал уведомления об добавлении чего-то в этот файлик и самое главное конкретно чего. то есть после включения приложения добавили строчку "Вася-лох" - мне надо надо получить только ее независимо от того единственная эта запись или нет.

То, что файлик изменился умеет показывать WatchServcie(since java 7), но ЧТО конкретно в нём поменялось - я так понимаю ему недоступно.

Что посоветуете для решения этой проблемы?
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90, решений тут может быть много. Они по большей части выходят за рамки java.
Операционку сменить например. И файловую систему.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672084
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое простое, запоминать последнюю позицию. В следующий раз показывать всё, что после нее добавилось и запоминать уже новую позицию.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672085
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Я не понимаю о чем Вы. Хотелось бы больше конкретики.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672092
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanСамое простое, запоминать последнюю позицию. В следующий раз показывать всё, что после нее добавилось и запоминать уже новую позицию.

в этом случае мы сами должны опрашивать файловую систему. Можем ли мы как-то подписать на событие изменения?
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672095
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

хотя вкупе с watcService это звучит логично
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672098
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90в этом случае мы сами должны опрашивать файловую систему. Можем ли мы как-то подписать на событие изменения?
На сколько я понимаю WatchService тоже сам по себе события не присылает. А что мешает использовать WatchService и запоминать размер файла?
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672161
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,
Ну, если по диагонали посмотреть javadoc api, то сделать класс AddChecker, и еще один ... implements WatchEvent<AddChecker>, и возможно еще добавить ~Event.kind, зарегистрировать в WatchService и т.д., только вот все-равно придется руками делать логику (тот же курсор). Разница только в том, что у вас основной цикл программы упрощается немного. Хотя модно. Если файл не один, то, может и стоит.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672166
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90mayton,

Я не понимаю о чем Вы. Хотелось бы больше конкретики.
Ты хочешь мониторить изменения в одном файле? Или во многих?
Если во многих то их количество как измеряется сотни? Миллионы?
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672204
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonТы хочешь мониторить изменения в одном файле? Или во многих?
Если во многих то их количество как измеряется сотни? Миллионы?
изменения в файлах, располагающихся в папке.
Количество - до сотни
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672293
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сохранять во временной папки (или другом хранилище)
Сравнивать с сохраненным старым содержимым

IMHO & AFAIK
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672296
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

BlazkowiczНа сколько я понимаю WatchService тоже сам по себе события не присылает. А что мешает использовать WatchService и запоминать размер файла?

http://bigdatanerd.wordpress.com/2011/09/20/java-7-feature-java-watchservice-hello-world/
ну да, вечный цикл как-то не камильфо, но что делать.


а как по размеру понять насколько каретку сдвинуть?
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672301
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevСохранять во временной папки (или другом хранилище)
Сравнивать с сохраненным старым содержимым

IMHO & AFAIK

Это ведь очень долго.После каждого добавления сравнивать два файла до момента когда один закончится.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672357
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man tail

example:

tail -f /var/log/syslog
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672377
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Что посоветуете для решения этой проблемы? Commons IO .
Для ситуации "данные только добавляются" - достаточно запомнить прежний размер файла и (тем или иным способом) начинать читать после запомненой позиции.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38672547
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Leonid KudryavtsevСохранять во временной папки (или другом хранилище)
Сравнивать с сохраненным старым содержимым

IMHO & AFAIK

Это ведь очень долго.После каждого добавления сравнивать два файла до момента когда один закончится.
По сути тебе нужен слегка изменённый rsync который перед синхронизацией вызадавал-бы тебе
difference. А оптимизации дискового трафика при сравнении в rsync были заложены изначально и
базируются на контрольных суммах.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38673657
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonredwhite90пропущено...


Это ведь очень долго.После каждого добавления сравнивать два файла до момента когда один закончится.
По сути тебе нужен слегка изменённый rsync который перед синхронизацией вызадавал-бы тебе
difference. А оптимизации дискового трафика при сравнении в rsync были заложены изначально и
базируются на контрольных суммах.

rsync самому написать это сильно.

P.S. я побаиваюсь линукса.
...
Рейтинг: 0 / 0
Как получить diff изменения файлика?
    #38674112
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кажется всё написано до нас:
https://code.google.com/p/java-diff-utils/
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить diff изменения файлика?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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