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

时间:2017-01-17 05:15:29

标签: java android 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行。我检查了文件,并且在它被拆分的地方没有隐藏的字符。如果我自己编写解析器,也可以正常工作。

1 个答案:

答案 0 :(得分:0)

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