android studio和netbeans中输入扫描程序和解析的不同行为

我正在使用NetBeans(测试基本代码)和Android Studio(实际应用程序)读取相同的管道分隔文件,并获得不同的结果。

这是违规代码:

String URL = "http://.../CalendarUTF8(Dec2016).txt"; try { java.net.URL url = new java.net.URL(URL); Scanner input = new Scanner(url.openStream()); int i; for (i = 0; input.hasNext(); i++) { String temp = input.nextLine(); eventCalendar[i] = temp.split("\\|",9); } } catch (java.io.IOException ex) { System.out.println("IO Errors"); } 

代码在NetBeans中完美运行。 在Android Studio中读取的同一文件随机中断输入行,然后将其读取为2行。 我检查了文件,并且在它被拆分的地方没有隐藏的字符。 如果我自己编写解析器,也可以正常工作。

看起来问题是在for循环的头文件中使用hasNext()并在for循环体中使用nextLine()。 当我用hasNextLine()替换hasNext()时,我的记录计数匹配。 不明白为什么,因为hasNext()应该看一些东西,而不是改变,但它有效。