扫描仪具有无限循环

时间:2013-12-12 19:55:56

标签: java java.util.scanner

这是我的班级:

  public class class1{  
    public static void main(String[] args) {            
        File source = new File("E:\\NUS_WID_Tags\\All_Tags.txt");
        File target = new File("fiche1Filtered3.txt");
        int i=0; 

        try {
            Scanner s = new Scanner(source);
            PrintStream psStream= new PrintStream(target);
            while (s.hasNext()) {                   
                System.out.println(i++);
            }                
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

程序进入无限循环。

1 个答案:

答案 0 :(得分:6)

你忘了消耗实际输入。 hasNext doesn't consume the input

  

扫描仪不会超过任何输入。

在循环中插入对next()的调用:

while (s.hasNext()) {
    String str = s.next();
    System.out.println(i++);
}