【发布时间】:2021-01-24 19:53:55
【问题描述】:
从“|”读取时,我收到了 NoSuchElementException (管道)分隔的文本文件。
我认为这是导致错误的部分:
public void readFromFile(String file)
{
operas.clear(); //clear the ArrayList
try
{
//Read while there is data
Scanner input = new Scanner(new File(file)); //alternative to FileReader & BufferedReader
String line = "";
Opera music = null;
StringTokenizer token = null;
while(input.hasNextLine())
{
line = input.nextLine();
music = new Opera(); // create an opera
token = new StringTokenizer(line, "|");
while (token.hasMoreElements())
{
music.setName(token.nextToken());
music.setComposer(token.nextToken());
music.setYear(Integer.parseInt(token.nextToken()));
music.setCity(token.nextToken());
music.setSynopsis(token.nextToken());
music.setLink((token.nextToken()));
}
}
...
}
错误信息:
【问题讨论】:
-
请正确缩进你的代码,它现在几乎不可读。此外,显示完整的错误消息,包括它指向的相关行。如果您展示一个完整的示例,这也会有所帮助,因此使用触发您的问题的
main方法。 -
为什么选择
StringTokenizer来解析文件中的一行?这是一个遗留类,不鼓励使用它。
标签: java tokenize stringtokenizer