【发布时间】:2013-05-06 23:07:16
【问题描述】:
new FileInputStream("C:\\Users\\Adam\\Documents\\NetBeansProjects\\TicTacToe_3.0 beta\\src\\resources\\System Shock 2 soundtrack Med Sci 1.mp3");
BufferedImage bf = ImageIO.read(new File("C:\\Users\\Adam\\Documents\\NetBeansProjects\\TicTacToe_3.0 beta\\src\\images\\black-squareMod.jpg"));
上面的两行代码从给定的路径中获取某种资源。我想更改它们,以便它们引用同一 Netbeans 项目中的包,该项目包含相同的资源。
例如,
文件输入流();
...正在获取音频文件。
BufferedImage bf = ImageIO.read(new File());
...正在获取 .jpg 图像。
这两个文件位于同一个 Netbeans 项目中名为“resources”的包中。如何更改指定的路径,以便它们直接进入这些包,而不是通过我的硬盘?
谢谢。
【问题讨论】:
-
Class.getResource() 和 Class.getResourceAsStream() 方法是相对于类位置的。它们就是为此目的而设计的。
-
这就是我的想法。我实现了它,但有一个异常指出 getResource() 返回 null。我确保源路径正确并列在项目类路径中。
-
您不需要在 Java 文件名中使用反斜杠。使用
/。 -
@EJP 是的,这是正确的。当我尝试运行我的代码时,使用双反斜杠实际上会导致异常。