Вместо использования специальной функции сравнения вы также можете создать тип объекта с помощью специального метода toString()
(который вызывается функцией сравнения по умолчанию):
function Person(firstName, lastName) {
this.firtName = firstName;
this.lastName = lastName;
}
Person.prototype.toString = function() {
return this.lastName + ', ' + this.firstName;
}
var persons = [ new Person('Lazslo', 'Jamf'), ...]
persons.sort();
На низком уровне единственный способ смоделировать эту утилиту состоит в том, чтобы иметь опрос потока на каталоге и наблюдение на атрибутах файла. Но можно использовать шаблоны для разработки адаптера для такой утилиты.
, Например, j2ee серверы приложений как Tomcat и другие имеют автоматическую функцию загрузки, где в том, как только изменения дескриптора развертывания или класс сервлета изменяет перезапуски приложения.
можно пользоваться библиотеками с таких серверов, как большая часть кода кота является допускающей повторное использование и с открытым исходным кодом.
Если Вы готовы расстаться с небольшим количеством денег, JNIWrapper является полезной библиотекой с Winpack, Вы сможете получить события файловой системы на определенных файлах. К сожалению, окна только.
См. https://www.teamdev.com/jniwrapper.
Иначе, обращаясь к собственному коду не всегда плохая вещь особенно, когда лучшим предлагаемым является механизм опроса по сравнению с собственным событием.
я заметил, что операции файловой системы Java могут быть медленными на некоторых компьютерах и могут легко влиять на производительность приложения если не обработанный хорошо.
"Функции More NIO" имеют функциональность часов файла с зависящим от реализации на базовую ОС. Должен быть в JDK7.
Существует lib, названный jnotify, который переносит inotify на Linux и имеет также поддержку окон. Никогда не использовал его, и я не знаю, насколько хороший это, но это стоит попытки, которую я сказал бы.
Я использую API VFS от Apache палата общин, вот пример того, как контролировать файл без большого влияния в производительности:
Я записал монитор файла журнала прежде, и я нашел, что влияние на производительность системы опроса атрибутов единственного файла, несколько раз секунда, является на самом деле очень маленьким.
Java 7, как часть NIO.2 добавила WatchService API
WatchService API, разработан для приложений, которые должны быть уведомлены о событиях изменения файла.
Существует коммерческая кросс-десктопная библиотека для просмотра файлов и папок под названием JxFileWatcher. Его можно скачать отсюда: http://www.teamdev.com/jxfilewatcher/
Также вы можете увидеть это в действии в Интернете: http://www.teamdev.com/jxfilewatcher/onlinedemo/
Вы также можете рассмотреть Apache Commons JCI (интерфейс компилятора Java). Хотя этот API, похоже, ориентирован на динамическую компиляцию классов, он также включает классы в свой API, который отслеживает изменения файлов.