好的,我正在尝试使用以下代码加载Java文件:
String file = "map.mp"; URL url = this.getClass().getResource(file); System.out.println("url = " + url); FileInputStream x = new FileInputStream("" + url);
尽管在同一个文件夹中的类文件是它说,它不能找到它(是的,这是在充分代码try catch块).
但是,它找到另一个使用不同名称的相同代码的文件:
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
直接给你一个.或者,getResource()
如果您想要其他内容的URL ,请继续使用,但随后用于URL.openStream()
获取数据.