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

时间:2012-06-01 06:12:37

标签: java image text cross-platform embedded-resource

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

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

但显然它有许多缺点。一开始,看起来又长又丑,我怀疑,慢。 此外,正斜杠“/”仅适用于Mac或Linux,在Windows上,它将使用反斜杠。

编辑:正如下面Samuel Rossille所述,正斜杠“/”实际上是在Windows上工作。

我想知道无论如何加载图像,它们都在应用程序目录中,并且不会以更优雅的方式更改,以及跨平台?

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

1 个答案:

答案 0 :(得分:3)

查看信息。在embedded resources。请注意,大多数方法&接受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中接受用于表示String路径的File的构造函数。如果它需要File,请给它File并完成它。