通过扫描程序读取文件时,程序中出现运行时异常。
java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at Day1.ReadFile.read(ReadFile.java:49) at Day1.ParseTree.main(ParseTree.java:17)
我的代码是:
while((str=sc.nextLine())!=null){ i=0; if(str.equals("Locations")) { size=4; t=3; str=sc.nextLine(); str=sc.nextLine(); } if(str.equals("Professions")) { size=3; t=2; str=sc.nextLine(); str=sc.nextLine(); } if(str.equals("Individuals")) { size=4; t=4; str=sc.nextLine(); str=sc.nextLine(); } int j=0; String loc[]=new String[size]; while(j<size){ beg=0; end=str.indexOf(','); if(end!=-1){ tmp=str.substring(beg, end); beg=end+2; } if(end==-1) { tmp=str.substring(beg); } if(beg<str.length()) str=str.substring(beg); loc[i]=tmp; i++; if(i==size ){ if(t==3) { location.add(loc); } if(t==2) { profession.add(loc); } if(t==4) { individual.add(loc); } i=0; } j++; System.out.print("\n"); }
与Scanner你需要检查,如果存在与下一行hasNextLine()
Scanner
hasNextLine()
所以循环变成
while(sc.hasNextLine()){ str=sc.nextLine(); //... }
是读者返回null EOF
EOF
当然在这段代码中,这取决于输入的格式是否正确