Тем не менее, вы, вероятно, хотите получить URI. Например, a URIначинается с file:///URL-адреса file:/(по крайней мере, это то, что toStringпроизводит).
«... URI начинается с file: ///, а URL с file: / ...». Это как для Windows, так и для Linux?
ptntialunrlsd
@ptntialunrlsd Это хороший вопрос. Я не проверял, но я бы предположил, да.
Александр Дубинский
7
Нет. URL - это особый случай URI. URI файла начинается с «file: //», а затем перечисляет хост (как правило, опускается), за которым следуют «/» и путь «foo / bar» (обычно подразумеваемый как абсолютный путь). Таким образом "file: /// foo / var". URI, который выглядит как «file: / foo / bar», неверен. Смотрите также: файл URI схемы
Дэвид Тонхофер
@DavidTonhofer Спасибо за объяснение URI, но это не отвечает на вопрос ptntialunrlsd . Что '... toURL (). ToString ()' производит в Linux? Кроме того, я отменил ваши правки, потому что они сделали мой ответ более многословным, не меняя смысла.
Александр Дубинский
3
@AleksandrDubinsky Лучше всего оставить указатели на Javadoc для Oracle, хотя ... проще переходить по ним java.nio.file.Paths. Кроме того, убедитесь, что вы имеете в виду реализации в «URI против URL». Anway java.net.URL.toString()производит то же самое в Unix, как и должно. Он отображает только одну "/", что очень неправильно (см. Схему URI файла ). Я думаю, что это на Java по причинам, лучше использовать java.net.URI. Он правильно генерирует «file: // [host] /» при вызове .toString().
где /your/file/hereабсолютный путь к файлу в Unix / Linux. На Windows это было бы иначе, я думаю.
Робин Грин
5
Это не очень умно, так как вам приходится самостоятельно обрабатывать экранирование символов, которые не допускаются в URL. В Windows (и, возможно, в других операционных системах) вы также должны изменить разделитель пути от собственного пути к файлу.
jarnbjo
new URL("file:my.properties");
Weberjn
Хотя это правильно, оно не переносимо, поскольку зависит от абсолютных путей.
посмотрите здесь полный синтаксис: http://en.wikipedia.org/wiki/File_URI_scheme
для unix-подобных систем, как будет сказано @Alex, file:///your/file/hereтогда как для систем Windowsfile:///c|/path/to/file
@SeanPatrickFloyd иногда у вас нет выбора, например, когда он находится в .propertiesфайле.
Сани
@ArtB Я не вижу, как это меняет дело
Шон Патрик Флойд
2
@SeanPatrickFloyd, этот вопрос / ответ возникает при поиске java file url, что в моем случае означает, что я искал формат file://URL, в Java, для использования в .propertiesфайле или для ввода вручную и т. Д.
daveloyall
1
@SeanPatrickFloyd иногда у вас нет доступа к исходному коду, только к свойству, и file://, к сожалению, это необходимо. Быть зависимым от системы - не такая большая проблема, так как это изменчивое свойство.
Используя Java 7:
Тем не менее, вы, вероятно, хотите получить
URI
. Например, aURI
начинается сfile:///
URL-адресаfile:/
(по крайней мере, это то, чтоtoString
производит).источник
java.nio.file.Paths
. Кроме того, убедитесь, что вы имеете в виду реализации в «URI против URL». Anwayjava.net.URL.toString()
производит то же самое в Unix, как и должно. Он отображает только одну "/", что очень неправильно (см. Схему URI файла ). Я думаю, что это на Java по причинам, лучше использоватьjava.net.URI
. Он правильно генерирует «file: // [host] /» при вызове.toString()
.источник
источник
/your/file/here
абсолютный путь к файлу в Unix / Linux. На Windows это было бы иначе, я думаю.new URL("file:my.properties");
источник
посмотрите здесь полный синтаксис: http://en.wikipedia.org/wiki/File_URI_scheme для unix-подобных систем, как будет сказано @Alex,
file:///your/file/here
тогда как для систем Windowsfile:///c|/path/to/file
источник
File.toURI().toURL()
путь.properties
файле.java file url
, что в моем случае означает, что я искал форматfile://
URL, в Java, для использования в.properties
файле или для ввода вручную и т. Д.file://
, к сожалению, это необходимо. Быть зависимым от системы - не такая большая проблема, так как это изменчивое свойство.Вы также можете использовать
источник
jar:file:/home/user/a/b/c/foo.jar!/com/example/stuff/config.txt
.