2013-05-28 5 views
13

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

Однако, теперь у меня есть проблема, что я действительно не теперь, как получить от объекта типа 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?

ответ

15

Как насчет

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

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

1

В Scala будет

import java.nio.file.Paths 

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

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