我正在学习用Java创建游戏,需要在动画之前加载多个图像。这就是我现在正在做的事情:
bg = new ImageIcon(System.getProperty("user.dir")+"/src/img/bg.jpg").getImage();
但显然它有很多缺点。首先,它又长又丑,我怀疑,很慢。此外,正斜杠
编辑:正如下面的塞缪尔·罗西尔(Samuel Rossille)所纠正的那样,正斜杠"/"实际上在窗口上起作用。
我想知道是否有加载图像,这些图像位于应用程序目录中,并且不会以更优雅的方式以及跨平台
的方式进行更改?加载文本文件怎么样?它们有什么不同吗?
请参阅有关嵌入式资源的信息。 请注意,大多数接受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
并完成它。