Основные проблемы, с которыми вы, вероятно, столкнетесь:
- При построении URL вы должны обработать
MalformedURLException
.Файловый конструктор не выдает это исключение. - Вы теряете много удобных файловых методов, таких как: существует ли файл;это файл или каталог;это читабельно;установить файл как читаемый или записываемыйПоскольку URL-адрес может не ссылаться на файл, он не обязательно применяется и недоступен в API-интерфейсе URL.
- Способ доступа к URL-адресу изменяется.URL имеет
openStream
или openConnection
методы;с File вы, вероятно, будете использовать поток на основе файлов (например, FileInputStream
). - Если URL требует наличия сети, а не доступа к диску, любые предположения о задержке, которые вы могли сделать, могут больше не выполняться.
Класс URL выполняет некоторые проверки SecurityManager, но, учитывая, что это приложение для настольного компьютера, разве у вас нет контроля над настройками менеджера безопасности?
Кроме этого, поскольку URLрасширенный набор файлов (поскольку он обрабатывает протокол file:
среди прочего), вы должны иметь возможность использовать его таким же образом.Другой вариант - вместо передачи либо файла, либо URL-адреса - использовать потоки везде, где это возможно, так как вы можете использовать файл или URL-адрес для создания потока, как требуется.