Подтвердить что ты не робот

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?

4b9b3361

Ответ 1

Как насчет

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

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

Ответ 2

В Scala будет

import java.nio.file.Paths

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

В Java должно быть одинаково (с немного отличающимся синтаксисом)