Три варианта:
script
является последним тегом тела, DOM будет готов до выполнения тега скрипта onreadystatechange
document.onreadystatechange = function () {
if (document.readyState == "complete") {
// document is ready. Do your stuff here
}
}
Источник: MDN
DOMContentLoaded
document.addEventListener('DOMContentLoaded', function() {
console.log('document is ready. I can sleep now');
});
Обеспокоены браузерами каменного века : Перейдите к исходному коду jQuery и используйте функцию ready
. В этом случае вы не анализируете + не выполняете всю библиотеку, вы делаете только очень маленькую ее часть.
Добавьте следующий код (после того, как вы выполнили свои операции с файлом):
buffout.close();
fileoutput.close();
temp.delete();
Пока какой-то поток в файле открыт, он заблокирован (по крайней мере, в окнах- реализация JVM). Поэтому его нельзя удалить.
Это хорошая практика - всегда проверять, закрываются ли все открытые потоки снова после использования, потому что это плохая ситуация с утечкой памяти. Ваше приложение может даже съесть все доступные дескрипторы файлов, что может привести к непригодности системы.
Есть ошибка , говорящая о том, что если файл открыт файловым редактором или чем-то еще, он не будет удален. На окнах. Проверьте, не закрываете ли вы свои средства записи файлов.
Другой способ обхода проблемы - установка ShutdownHook , которая вручную удаляла бы файл.
Вы должны полностью выключить виртуальную машину , чтобы deleteOnExit
работал правильно (я подозреваю). В UNIX
kill
будет чистым завершением работы (т.е. будут обработаны ShutdownHooks
), тогда как kill -9
будет более похожим на принудительный выход .
deleteOnExit
определенно работает для меня!