首页 > 解决方案 > 未触及代码块

问题描述

我正在用 Java 构建一个小型应用程序,小型游戏机制,但没什么大不了的。我有一个类,目的是从文件中获取数据。但是,当我声明要从中读取两个类时,程序会忽略所有内容并继续。结果,当我尝试访问相应的列表时,它给了我空指针异常。获取数据的方法代码如下:

public void getData(int l, player tmp, level le) {
        String[] dataPlayer;
        String[] dataLevel;

        try {
            //FileReader f = new FileReader(this.levelPath.concat(Integer.toString(l)));
            File f = new File(this.levelPath.concat(Integer.toString(l)));
            BufferedReader buff = new BufferedReader(new FileReader(f));
            System.out.println("Reached");

            boolean eof = false;
            while (!eof) {
                String b = buff.readLine();

                if (b == null)
                    eof = true;
                else {
                    if (b.contains("player")) {
                        dataPlayer = b.split("-");
                        for (int i = 0; i < dataPlayer.length; i++) {
                            if (i == 0)
                                continue;

                            items it = new items(dataPlayer[i]);
                            tmp.setInventory1(it);
                        }
                    }else if (b.contains("level")) {
                        dataLevel = b.split("-");
                        for (int i = 0; i < dataLevel.length; i++) {
                            if (i == 0)
                                continue;

                            items it = new items(dataLevel[i]);
                            le.setSpecific(it);
                        }
                    }
                }
            }
        }catch (IOException i) {
            i.getMessage();
        }


    }

文件“levelData1”的文件内容:

player-hat
player-flashlight
level-flower
level-rock
player-adz

这个特殊问题的问题是路径,它需要像 /home/toomlg4u/IdeaProjects/javaProject/src/Data/levelData 这样的绝对值。

标签: javalistfilenull

解决方案


你在 try/catch 中做了很多可能不会抛出 IOException 的事情。如果您遇到任何其他异常,则不会被捕获。根据您有哪些其他异常处理,这可能会导致奇怪的行为。对于调试,您可以捕获所有异常,并查看您是否得到了其他东西。


推荐阅读