鉴于我与Scanner
,其中第一行包含一个图像读取(其位于相同的文件夹的文本文件)的名称读入一个标准的文本文件,如何可以使用该文件名来加载图像显示在屏幕上?就目前来看,我得到一个javax.imageio.IIOException
说“无法读取输入文件!”我不明白为什么不。如何在外部文本文件中定义文件名时加载文件?
这里的文本文件:
MapBig.jpg
2
5
439 203 405 253 431 280 499 257 495 217
5
57 147 164 72 190 127 105 300 70 260
这里是我的代码来阅读:image = ImageIO.read(new File(in.nextLine()));
其中in
是Scanner
一个实例。
我也是在文本文件中使用./MapBig.jpg
试过,我也得到了同样的问题。
我想这也应该指出的是,我再次阅读使用ClassLoader.getSystemResourceAsStream("map.data");
文本文件,因为这个文件是在我的项目源文件夹......同一文件夹中的文件MapBig.jpg
这里有一个堆栈跟踪当错误出现:
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at graphics.MapPanelSettings.<init>(MapPanelSettings.java:32)
at graphics.GameFrame.initialize(GameFrame.java:71)
at graphics.GameFrame.<init>(GameFrame.java:49)
at game.GameLauncher.main(GameLauncher.java:9)
我试着给你的问题给出正确的答案,但是你可以发布你正在收到的堆栈跟踪错误,所以我们可以很容易地看到发生了什么问题?提前致谢。 –
基于堆栈跟踪:确实是错误的输入文件。您可能错误地加载了文件,因为输入文件无法读取。你也应该确保你的'resources'目录放置正确。这个目录应该在**你的'src'目录里。我在我的回答中更清楚地解释了这一点。 –