我在我的程序中加了这段代码来统计文件内容的行数
java.io.File file = new java.io.File("input.txt");
Scanner inputfile = new Scanner(file);       //读取文件夹里面的文章
int line = 0;
while(inputfile.hasNextLine()){     //计算总行数
line++;
}
但只要加上这段代码程序就不能运行了,eclipse错误提示也没有最主要的是cpu和内存使用率就逐渐往上冲,都快满了,这是怎么回事呢?

解决方案 »

  1.   

    死循环了。你光判断有没有NextLine,却没有读取掉这个NextLine(),所以读取指针永远在原地。
      

  2.   


    有错误提示
    Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at EditString.main(EditString.java:11)
      

  3.   

    while(inputfile.hasNextLine()){     //计算总行数    
      inputfile.nextLine();
      line++;
    }
      

  4.   

    NoSuchElementException异常当nextLine方法没有找到下一行的时候发生,你可以catch这个异常,当发生时表示要统计完毕了。
    hasNextLine方法本身返回有没有下一行,但是并不会跳过这一行,需要用nextLine方法来跳过这一行。
      

  5.   

    参考文档地址:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#nextLine()