我正在学习用 Java 创建游戏,需要在制作动画之前加载多个图像。这就是我现在正在做的事情:
bg = new ImageIcon(System.getProperty("user.dir")+"/src/img/bg.jpg").getImage();
但显然它有很多缺点。首先,它又长又丑,而且我怀疑速度很慢。 此外,正斜杠“/”仅适用于 Mac 或 Linux,而在 Windows 上,它将使用反斜杠。
编辑:正如下面塞缪尔·罗西尔所纠正的那样,正斜杠“/”实际上在 Windows 上有效。
我想知道是否有加载图像,这些图像位于应用程序目录中,并且不会以更优雅的方式更改,并且是跨平台的?
加载文本文件怎么样?它们有什么不同吗?
最佳答案
查看信息。上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 中接受用于表示 File
路径的 String
的所有方法和构造函数都应该被弃用。如果它需要一个File
,给它一个File
并完成它。
关于java - Java 中加载图像的高效跨平台方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845296/