удалите временный файл в Java

Три варианта:

  1. Если script является последним тегом тела, DOM будет готов до выполнения тега скрипта
  2. Когда DOM готов, "readyState" "изменится на" завершить "
  3. Поместить все в обработчик событий 'DOMContentLoaded'

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. В этом случае вы не анализируете + не выполняете всю библиотеку, вы делаете только очень маленькую ее часть.

19
задан oxbow_lakes 22 June 2009 в 10:41
поделиться

3 ответа

Добавьте следующий код (после того, как вы выполнили свои операции с файлом):

buffout.close();
fileoutput.close();
temp.delete();

Пока какой-то поток в файле открыт, он заблокирован (по крайней мере, в окнах- реализация JVM). Поэтому его нельзя удалить.

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

23
ответ дан 30 November 2019 в 04:29
поделиться

Есть ошибка , говорящая о том, что если файл открыт файловым редактором или чем-то еще, он не будет удален. На окнах. Проверьте, не закрываете ли вы свои средства записи файлов.

Другой способ обхода проблемы - установка ShutdownHook , которая вручную удаляла бы файл.

3
ответ дан 30 November 2019 в 04:29
поделиться

Вы должны полностью выключить виртуальную машину , чтобы deleteOnExit работал правильно (я подозреваю). В UNIX kill будет чистым завершением работы (т.е. будут обработаны ShutdownHooks ), тогда как kill -9 будет более похожим на принудительный выход .

deleteOnExit определенно работает для меня!

0
ответ дан 30 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

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