从Java文件读取数组元素时出现NullPointerException错误
在我的程序中,我创建一个景点,并填写门票类型的数量、标题和成本,然后退出程序并再次运行
我有一个从文件中读取元素的构造函数。然后,当我尝试读取数组元素时,它会给我一个NullPointerException
错误,即使该元素不是空的
当我注释掉下面错误所在的代码块时,输入字符串“Tour Only”会出现一个NumberFormatException
错误,所以我知道它不是空的
fileScanner.nextLine();
for (int i = 0; i < getTicketTypesNum(); i++)
this.ticketTypeTitle[i] = fileScanner.nextLine();
fileScanner.nextLine();
下面是完整的代码
吸引力。java
// The constructor.
public Attraction(Scanner fileScanner) {
...
// The data read before the error.
fileScanner.nextLine();
this.ticketTypesNum = Integer.parseInt(fileScanner.nextLine());
fileScanner.nextLine();
fileScanner.nextLine();
for (int i = 0; i < getTicketTypesNum(); i++) {
// Line where the error is located.
this.ticketTypeTitle[i] = fileScanner.nextLine();
}
fileScanner.nextLine();
for (int i = 0; i < getTicketTypesNum(); i++)
this.ticketTypeCost[i] = Integer.parseInt(fileScanner.nextLine());
fileScanner.nextLine();
...
}
// Store the attraction information and write it to file.
public void writeData(PrintWriter pw) {
...
pw.println("Number of Ticket Types:");
pw.println(getTicketTypesNum());
pw.println();
pw.println("Ticket Titles:");
for (int i = 0; i < getTicketTypesNum(); i++)
pw.println(getTicketTypeTitle()[i]);
pw.println();
pw.println("Ticket Costs:");
for (int i = 0; i < getTicketTypesNum(); i++)
pw.println(getTicketTypeCost()[i]);
pw.println();
...
}
如果你需要更多的代码,我会编辑我的问题,包括更多
谢谢你的帮助
更新
我试着注释掉出错的那一行,然后继续运行代码,当我必须读取数组元素时,我会得到一个NullPointerException
# 1 楼答案
这是一个有效的示例程序。你可以试试这个并打印你的数组。 确保你有这个扫描仪。hasNextLine()在从文件中获取元素之前进行检查。此外,理想情况下,数组大小应该等于文件中占用的行数
让我知道这对你是否有效