【发布时间】:2015-12-17 19:18:41
【问题描述】:
我正在尝试在 NetBeans IDE 中使用扫描仪从文本文件中读取字符以填充对象数组。游戏的所有文件都在同一个文件夹中,src/wizard/game。以下是我的 GamePanel.java 类,除相关代码外,所有内容均已删除:
public class GamePanel extends JPanel
{
boolean instantiated;
public GamePanel() {
spaces = new Entity[width][height];
// Tell whether entities have been instantiated yet or not
instantiated = false;
}
// *** Interfacing methods ***
// Instatntiate entites in a level from a text file
public static void loadLevel(String l) throws FileNotFoundException {
File level = new File(l);
Scanner s = new Scanner(level);
for(int y=1; y<=GamePanel.getH(); y++) {
for(int x=1; x<=GamePanel.getW(); x++) {
String nextIdentifier = s.next();
switch(nextIdentifier) {
case("x"):
// Nothing
break;
case("s"):
new WallSandstone(x, y);
break;
}
}
}
}
@Override
public void paintComponent(Graphics g)
{
// Instantiate entities here only once
while(instantiated == false){
try {
loadLevel("levelOne.txt");
} catch (FileNotFoundException ex) {
Logger.getLogger(GamePanel.class.getName()).log(Level.SEVERE, null, ex);
}
instantiated = true;
}
}
}
还有 levelOne.txt 文件:
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x s s s s s s s s s s s s s x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x s x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x s s s s s s x s s s s s s x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
s s s s s s s s s s s s s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x s x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
运行此代码会出现以下错误:
SEVERE: null
java.io.FileNotFoundException: levelOne.txt (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.util.Scanner.<init>(Scanner.java:611)
at wizard.game.GamePanel.loadLevel(GamePanel.java:65)
at wizard.game.GamePanel.paintComponent(GamePanel.java:97)
at javax.swing.JComponent.paint(JComponent.java:1056)
我做错了吗?我一生都无法弄清楚为什么这不起作用。
【问题讨论】:
-
你的文本文件显然放错了地方,如果你不想指定绝对路径,它应该在你项目的根文件夹中。我不认为
The system cannot find the file specified可以比现在更具描述性...... -
如何指定绝对路径?如果可以的话,我想将文件与其他所有文件一起保存在当前文件夹中
-
你输入它......就像往常一样。此外,静态文本文件不属于您的源代码。
-
输入什么?像“wizard/game/levelOne.txt”?你不能只说“像往常一样”,因为我以前从未使用过文件或路径,也不知道它们在 java 中是如何工作的
-
阅读指南,本网站要求您对您的网站进行最少的研究。只需在谷歌中输入“绝对路径”即可回答您的大部分问题,如果不是全部的话。绝对路径不是游戏独有的概念,它在整个操作系统和编程中无处不在
标签: java file text netbeans filenotfoundexception