Я смотрю на кусок кода Java прямо сейчас, и он берет путь как String и получает свой URL-адрес с помощью URL resource = ClassLoader.getSystemClassLoader().getResource(pathAsString);
, затем вызывает String path = resource.getPath()
и, наконец, выполняет new File(path);
.
О, и есть также вызовы URL url = resource.toURI();
и String file = resource.getFile()
.
Я сейчас полностью запутался - в основном из-за терминологии, я думаю. Может кто-нибудь, пожалуйста, проведет меня через различия или предоставит несколько ссылок на материал, защищенный от манекенов? Особенно URI для URL и ресурса для файла? Мне кажется, что они должны быть одинаковыми, соответственно...
Здесь объясняется разница между getFile()
и getPath()
: Какая разница между url.getFile() и getpath()? (Интересно, что оба они, похоже, возвращают Strings, что, вероятно, добавляет много моего душевного состояния...)
Теперь, если у меня есть локатор, который ссылается на класс или пакет в файле jar, будут ли эти два (т.е. путь к файлам) отличаться?
resource.toString()
даст вам jar:file:/C:/path/to/my.jar!/com/example/
, в конце концов (отметьте восклицательный знак).
Является ли разница между URI и URL на Java, что первая не кодирует пробелы? Ср Файлы, URI и URL-адреса, конфликтующие с Java (Этот ответ объясняет общую концептуальную разницу между двумя терминами довольно хорошо: URI определить и найти URL-адреса;)
Наконец - и самое главное - зачем мне нужен объект File
; почему не является ресурсом (URL
) достаточно? (И есть ли объект Resource?)
Извините, если этот вопрос немного неорганизован; это просто отражает путаницу, которую я имею...:)