我正在使用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行。我检查了文件,并且在它被拆分的地方没有隐藏的字符。如果我自己编写解析器,也可以正常工作。
答案 0 :(得分:0)
看起来问题是在for循环的标头中使用hasNext()并在for循环体中使用nextLine()。当我用hasNextLine()替换hasNext()时,我的记录计数匹配。不明白为什么,因为hasNext()应该看一些东西,而不是改变,但它有效。