我使用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行进行代码混乱?
答案 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中应该是相同的(语法略有不同)