-3
我想从文本文件中读取字符以在NetBeans IDE中使用扫描仪填充对象数组。所有游戏文件都在同一个文件夹src/wizard/game中。以下是我GamePanel.java类的一切,但相关的代码删除:NetBeans,尝试从扫描仪读取.txt文件,FileNotFoundException
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)
我做错了什么?我不能为了我的生活找出为什么这不起作用。
如果您不想指定绝对路径,那么您的文本文件显然位于错误的地方,它应该位于项目的根文件夹中。我不认为'系统找不到指定的文件'可以得到更多描述性的信息...... – redFIVE
我将如何去指定绝对路径?我想将文件保存在当前文件夹中,如果可以的话,可以使用 –
。此外,静态文本文件不属于您的源代码。 – redFIVE