我第一次用不同的课程制作了一个节目。虽然其他方法工作正常但我在从文件加载数据时遇到问题。 (如果有更简洁的方式显示代码,则道歉)
我使用'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;
}
答案 0 :(得分:0)
end
和front
都被初始化为零。
所以它永远不会进入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());
}
}