Java 7:获取资源路径(作为Path类型的对象)

时间:2013-05-28 16:49:10

标签: nio java-7

我使用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 个答案:

答案 0 :(得分:22)

怎么样

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

从URL创建文件是不合适的,因为它是从类路径获取的,文件实际上可能在jar中。

答案 1 :(得分:2)

在Scala中

import java.nio.file.Paths

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

在Java中应该是相同的(语法略有不同)