27

我正在使用 Java 7 的功能来读取文件。为此,我需要一个类型的对象Path。在我的代码中,我使用该getResource()函数来获取文件的相对路径(类型为URL)。

但是,现在我有一个问题,我现在真的不知道如何轻松地从一个类型URL的对象到一个类型的对象(不必通过铸件来例如到然后到和从那个到)?PathURIFilePath

这是一个向您展示我想做的示例:

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 行做那些代码混乱?

4

2 回答 2

36

怎么样

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

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

于 2013-10-31T07:21:17.140 回答
1

在 Scala 中

import java.nio.file.Paths

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

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

于 2017-01-01T10:43:32.367 回答