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 должно быть то же самое (с немного другим синтаксисом)