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 类型的对象)的主要内容,如果未能解决你的问题,请参考以下文章

怎么用java判断一个url是否PDF类型的文件

java获取指定目录中的文件列表

如何以编程方式获取资源目录路径

java 获取当前文件的路径,路径全名

laravel怎么获取到public路径

Java中getResourceAsStream的用法