将数据加载到数组的问题

时间:2018-04-05 22:35:13

标签: java arrays

我第一次用不同的课程制作了一个节目。虽然其他方法工作正常但我在从文件加载数据时遇到问题。 (如果有更简洁的方式显示代码,则道歉)

我使用'System.out.println(line)'来检查它是否正在读取行,这将按预期输出。 编辑:问题是:数组没有更新每一行。如果我打印数组它显示为空白,我不明白为什么会这样?

这是一个从主类调用的类:

private Passenger[] queueArray;

public Queue() {
    end = 0;
    front = 0;
    queueArray = new Passenger[30];
    for (int i = 0; i < queueArray.length; i++) {
        queueArray[i] = new Passenger();
    }

public void display() {
    System.out.println("Queue display: ");
    for (int look = front; look < end; look++) {
        System.out.println(" " + queueArray[look].getName());
    }

}

}
public void loadData() {
        try {
            BufferedReader in = new BufferedReader(new FileReader("Queue.txt"));
            String line;
            int i = 0;
            while (((line = in.readLine()) != null) && i < queueArray.length) {
                System.out.println(line);
                String[] words;
                words = line.split(" ");
                queueArray[i].setName(words[0], words[1]);
                i++;
            }
            in.close();
            System.out.println("Loaded");
        } catch (IOException e) {
            System.out.println("Broken");

        }
    }

作为参考,这是'setName'方法:

public void setName(String fName, String sName) {
    firstName = fName;
    surname = sName;
}

2 个答案:

答案 0 :(得分:0)

endfront都被初始化为零。 所以它永远不会进入display方法的循环。

答案 1 :(得分:0)

将显示方法更改为此

public void display() {
    System.out.println("Queue display: ");
    for (int look = front; look < queueArray.length; look++) {
        System.out.println(" " + queueArray[look].getName());
    }

}