Java 7:获取资源路径(作为 Path 类型的对象)
Posted
技术标签:
【中文标题】Java 7:获取资源路径(作为 Path 类型的对象)【英文标题】:Java 7: get Path of resource (as object of type Path) 【发布时间】:2013-05-23 17:44:01 【问题描述】:我正在使用 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 行做那些代码混乱?
【问题讨论】:
【参考方案1】:怎么样
Path path = Paths.get(url.toURI());
从您的 URL 创建文件是不合适的,因为它是从类路径中获取的,并且该文件实际上可能在一个 jar 中。
【讨论】:
出于好奇,如果资源实际上是在 jar 中,你会返回什么样的路径?【参考方案2】:在 Scala 中是
import java.nio.file.Paths
val resource = getClass.getResource("myfile.txt")
val path = Paths.get(resource.toURI)
在 Java 中应该是相同的(语法略有不同)
【讨论】:
虽然是真的,但我看不出这个答案如何真正提供其他答案尚未提供的任何东西。以上是关于Java 7:获取资源路径(作为 Path 类型的对象)的主要内容,如果未能解决你的问题,请参考以下文章