在 Java 中加载图像的高效和跨平台方式



我正在学习用Java创建游戏,需要在动画之前加载多个图像。这就是我现在正在做的事情:

bg = new ImageIcon(System.getProperty("user.dir")+"/src/img/bg.jpg").getImage();

但显然它有很多缺点。首先,它又长又丑,我怀疑,很慢。此外,正斜杠

"/"仅适用于Mac或Linux,而在Windows上,它将使用反斜杠。

编辑:正如下面的塞缪尔·罗西尔(Samuel Rossille)所纠正的那样,正斜杠"/"实际上在窗口上起作用。

我想知道是否有加载图像,这些

图像位于应用程序目录中,并且不会以更优雅的方式以及跨平台

的方式进行更改?

加载文本文件怎么样?它们有什么不同吗?

请参阅有关嵌入式资源的信息。 请注意,大多数接受File的方法和构造函数也将接受InputStreamURL。 嵌入的资源是只读的。


关于文件的问题(在极少数情况下,您可能会使用它们并且必须从String形成路径)。

String fileSep = System.petProperty("file.separator");
bg = new ImageIcon(System.getProperty("user.dir")+
    fileSep+
    "src"+
    fileSep+
    "img"+
    fileSep+
    "bg.jpg").getImage();

这是获取为文件系统使用正确分隔符的目录路径的一种方法。 File类还提供了方便的构造函数,例如将插入正确分隔符的构造函数new File(parent,child)

顺便说一句,我强烈认为J2SE中所有接受旨在表示File路径的String的方法和构造函数都应该被弃用。 如果它需要File,给它一个File并完成它。

最新更新