好的,我正在尝试使用以下代码在 Java 中加载一个文件:
String file = "map.mp";
URL url = this.getClass().getResource(file);
System.out.println("url = " + url);
FileInputStream x = new FileInputStream("" + url);
尽管该文件与它说它找不到它的类位于同一文件夹中(是的,它是在完整代码中的 try catch block 中)。
但是,它会找到另一个使用相同代码但名称不同的文件:
URL url = this.getClass().getResource("default.png");
System.out.println("url2 = " + this.getClass().getResource("default.png"));
BufferedImage img = ImageIO.read(url);
为什么我的代码找不到我的 map.mp 文件?
最佳答案
您正在尝试将 url 当作文件名来使用。不会的。它将以 file://
开头。在其他部署场景中,可能根本没有要打开的实际文件——例如,它可能位于 jar 文件中。如果确实需要,您可以使用 URL.getFile()
- 但最好不要使用。
使用 getResourceAsStream
而不是 getResource()
- 直接为您提供 InputStream
。或者,如果您需要其他内容的 URL,请继续使用 getResource()
,然后使用 URL.openStream()
获取数据。
关于java - 文件未找到。为什么不?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636046/