通过扫描程序读取文件时,程序中出现运行时异常。

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()的下一行

所以循环变成

while(sc.hasNextLine()){
    str=sc.nextLine();
    //...
}


读者在EOF上返回null

当然在这段代码中,这取决于输入的格式是否正确

关于java - java.util.NoSuchElementException:找不到行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61888501/

10-09 02:57