2013-05-28 42 views
13

我正在使用Java 7的功能讀取文件。爲此,我需要一個Path類型的對象。在我的代碼中,我使用getResource()函數來獲取相對路徑(類型URL)到一個文件。Java 7:獲取資源的路徑(作爲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()); 

這是不恰當的創建您的網址文件,因爲它是從classpath得到和文件實際上可能是一個罐子內。

1

在斯卡拉將

import java.nio.file.Paths 

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

在Java中應該是相同的(有稍微不同的語法)