Java 7: получить путь к ресурсу (как объект типа Path)

Я использую функции Java 7 для чтения в файле. Для этого мне нужен объект типа Path. В моем коде я использую getResource() функция для получения относительного пути (типа URL) в файл.

однако теперь у меня есть проблема, что я действительно не сейчас, как получить от объекта типа URL к объекту типа Path легко (без необходимость пройти кастинги, например, в URI потом File и от этого к Path)?

вот пример, чтобы показать вам, что я хочу сделать:

URL url = getClass().getResource("file.txt");
Path path = (new File(url.toURI())).toPath(); //is there an easier way?
List<String> list = Files.readAllLines(path, Charset.defaultCharset());

Итак, есть ли более простой способ достичь этого и не делать этот беспорядок кода в строке 2?

2 ответов


как о

Path path = Paths.get(url.toURI());

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


в Scala будет

import java.nio.file.Paths

val resource = getClass.getResource("myfile.txt")
val path = Paths.get(resource.toURI)

в Java должно быть то же самое (с немного другим синтаксисом)