Чтение XML-файла и сохранение информации в java каждый месяц [дубликат]

Это все в «волшебном» синтаксисе вызова метода:

object.property();

Когда вы получаете свойство из объекта и вызываете его за один раз, объект будет контекстом для метода , Если вы вызываете тот же метод, но в отдельных шагах, контекст представляет собой глобальную область (окно):

var f = object.property;
f();

Когда вы получаете ссылку на метод, он больше не привязан к объекту, это просто ссылка на простую функцию. То же самое происходит, когда вы получаете ссылку на использование в качестве обратного вызова:

this.saveNextLevelData(this.setAll);

Здесь вы привязываете контекст к функции:

this.saveNextLevelData(this.setAll.bind(this));

Если вы используете jQuery вы должны использовать метод $.proxy, а bind не поддерживается во всех браузерах:

this.saveNextLevelData($.proxy(this.setAll, this));
0
задан Srini 12 December 2015 в 17:49
поделиться

2 ответа

Я ничего не могу сказать о лотке, я незнаком с ним.

Вы можете сделать одну из двух вещей.

Во-первых, вы можете скопировать файлы в в каталог, используя один тип имени (например, newfile.copying), а затем переименуйте их только в «новый файл» после завершения копирования. Затем во время сканирования вы просто игнорируете файлы «* .copying».

Вы можете отслеживать размеры файлов по мере их загрузки и если размер файла не изменился через некоторое время (несколько секунд ), то вы можете предположить, что файл выполнен с копированием и началом обработки.

Наконец, вы должны просто иметь «сделанную» директорию (на том же диске) и переименовывать файлы в этот каталог,

Другой вариант заключается в том, что у вас может быть три каталога: «входящий», «рабочий», «сделанный».

Файлы копируются в «входящие» ". Прежде чем вы начнете их обрабатывать, вы переименуете их в «рабочий» каталог. Наконец, вы затем перемещаете его оттуда в каталог «done».

Это дает вам возможность восстановления, если система будет прервана. Вы «знаете», что последний обработанный файл, и вы можете либо его переработать, либо как угодно.

Параметры переименования важны, потому что в той же файловой системе они являются атомарными. У вас никогда не будет файла в одном каталоге, а не в другом, или в одном имени и в другом.

0
ответ дан Will Hartung 21 August 2018 в 20:00
поделиться

Если вы используете Java 7+, используйте Java java.nio.file.WatchService. Это лучший результат, потому что он работает везде, ожидаемый (за исключением одной ошибки в Linux) и не полагается на дополнительные библиотеки.

3
ответ дан Olivier Grégoire 21 August 2018 в 20:00
поделиться
  • 1
    Мой клиент может в основном использовать 1.7 и не выше этого на данный момент. Итак, что может быть другой альтернативой? Есть ли что-нибудь в scala, которое может удовлетворить это.? – Srini 12 December 2015 в 17:59
  • 2
    Ну, я был неправ. Это было доступно, начиная с Java 7, а не начиная с 8. Я исправил свой ответ. – Olivier Grégoire 12 December 2015 в 18:23
Другие вопросы по тегам:

Похожие вопросы: