我正在学习用Java创建游戏,并且需要在动画之前加载几个图像。这就是我现在正在做的事情:
bg = new ImageIcon(System.getProperty("user.dir")+"/src/img/bg.jpg").getImage();
但显然它有许多缺点。一开始,看起来又长又丑,我怀疑,慢。 此外,正斜杠“/”仅适用于Mac或Linux,在Windows上,它将使用反斜杠。 德尔>
编辑:正如下面Samuel Rossille所述,正斜杠“/”实际上是在Windows上工作。
我想知道无论如何加载图像,它们都在应用程序目录中,并且不会以更优雅的方式更改,以及跨平台?
加载文本文件怎么样?它们有什么不同吗?
答案 0 :(得分:3)
查看信息。在embedded resources。请注意,大多数方法&接受File
的构造函数也会接受InputStream
或URL
。嵌入式资源是只读的。
关于文件问题(在极少数情况下,您可能正在使用它们并且必须从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
并完成它。