在我的程序中,我有一行代码:
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所在的文件夹被添加为源文件夹。
答案 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)