getResource()到Path问题

时间:2016-03-15 00:31:24

标签: java path nio getresource

在我的程序中,我有一行代码:

Path toRead = new File(getClass().getResource("/data.txt").toString()).toPath();

每当我尝试运行时,我都会收到错误:

Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 4

作为一个普通的文件,它似乎运行良好,但作为一个路径它弄乱了,有解决方案吗?

我需要它作为路径才能使用Files.copy()

data.txt所在的文件夹被添加为源文件夹。

2 个答案:

答案 0 :(得分:1)

您应该从不假设从URL返回的getResource()指的是文件。你应该只使用URL.openStream()。这实际上是getResourceAsStream()的作用。

try (InputStream is = getClass().getResourceAsStream("/data.txt")) {
    Files.copy(is, targetPath);
}

答案 1 :(得分:0)

试试这个:

String pathToFile = getClass().getResource("/data.txt").toString()).toPath(); 
String  pathToFile = pathToFile.replace("/C:", "C:/");
Path toRead = Paths.get(pathToFile)