我正在尝试读取txt文件。我不断得到“没有这样的元素”错误,我无法理解为什么。我的代码是,
File myFile = new File(input.txt)
Scanner reader = new Scanner(myFile);
for (int i = 0; i<20; i++)
{
name[i] = reader.nextLine();
grade[i] = reader.nextInt();
reader.nextLine();
rank[i] = reader.nextInt();
reader.nextLine();
}
reader.close();
这是example of the file format。 我错过了什么?
答案 0 :(得分:3)
这就是为什么在从文件中读取时使用for
循环是一个坏主意;你不知道(相反,你不应该关心大多数意图和目的)你的文件有多大。
将其切换为while
循环:
while(reader.hasNext()) {
// code
}
(不要忘记在循环中提前i
。)
如果您的令牌被分成三个精确的倍数,这将读取令牌而不会耗尽要读取的内容。
答案 1 :(得分:1)
绝对不是使用for
循环的好选择。
您可以尝试这样的事情:
int i=0;
int i1=0;
int i2=0;
int i3=0;
while(reader.hasNextLine()) {
i++;
if(i==1){
name[i1]=reader.nextLine();
i1++;
}
if(i==2){
grade[i2]=Integer.valueOf(reader.nextLine());
i2++;
}
if(i==3){
rank[i3]=Integer.valueOf(reader.nextLine());
i3++;
i=0;
}
}