2

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

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

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

编辑:正如下面塞缪尔罗西尔所纠正的,正斜杠“/”实际上在 Windows 上工作。

我想知道是否有加载图像,在应用程序目录中,不会改变,以更优雅的方式,以及跨平台?

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

4

1 回答 1

3

查看信息。关于嵌入式资源。请注意,大多数接受 a 的方法和构造函数也File将接受InputStreamor URL。嵌入式资源是只读的。


关于文件的问题(在极少数情况下,您可能正在使用它们并且必须从 a 形成路径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路径的方法和构造函数都应该被弃用。如果它需要 a File,给它 aFile并完成它。

于 2012-06-01T06:17:14.147 回答