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

nav*_*ige 20 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());
Run Code Online (Sandbox Code Playgroud)

那么有没有更简单的方法来实现这一点,而不必在第2行做那些代码混乱?

Lol*_*olo 24

怎么样

Path path = Paths.get(url.toURI());
Run Code Online (Sandbox Code Playgroud)

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

  • 出于好奇,如果资源实际上在 jar 中,您会返回什么样的路径? (2认同)