FileInputStream
принимает имя файла в качестве параметра, а не строку URL.
Обычный способ получить содержимое, на которое указывает URL
, - openStream
. Вы можете открыть поток для ресурса, не касаясь URL
сами с помощью Class
/ ClassLoader.getResourceAsStream
(он открывает URL-адрес в реализации).
Кроме того, вы можете открыть файл URL с:
InputStream in = FileInputStream(new File(url.toURI()));
Для ресурса это потребует наличия файлов необработанных классов вне jar в вашей файловой системе. JNLP (Java WebStart) имеет API для безопасного открытия файлов.
В целом: при конвертации в String
используйте toString
или String.valueOf
, чтобы понять, что вы делаете. Также обратите внимание, что String
является несколько слабо типизированным, так как тип не указывает на формат данных, которые он содержит, поэтому предпочитайте URI
или File
.