Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java androidstudio和netbeans中输入扫描和解析的不同行为_Java_Android_Netbeans - Fatal编程技术网

Java androidstudio和netbeans中输入扫描和解析的不同行为

Java androidstudio和netbeans中输入扫描和解析的不同行为,java,android,netbeans,Java,Android,Netbeans,我使用NetBeans(测试基本代码)和androidstudio(实际应用程序)读取相同的管道分隔文件,得到不同的结果 以下是违规代码: 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; inp

我使用NetBeans(测试基本代码)和androidstudio(实际应用程序)读取相同的管道分隔文件,得到不同的结果

以下是违规代码:

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()应该看一些东西,而不是改变,但它起作用了

你能把你的文件也寄出去吗<代码>扫描仪s=新扫描仪(输入)。使用分隔符(“|”)使用此选项将分隔符设置为
|
,因为默认情况下,分隔符是
空白
使用分隔符
接收
模式
对象。因此,您应该转义
|
符号。所以:
Scanner s=新的扫描仪(输入)。使用分隔符(“\\\\”)
您可以使用此URL获取文件:“”,但正如我所说的,这种情况并非总是发生,只是偶尔发生,而且发生在没有什么奇怪的地方。例如,字符串“…4th St…”以“…4t”和“h St…”分隔,在记事本++中检查是否有特殊字符,但没有。此外,当您说“delimiter”时,您是指字符串(“|”)内的分隔符还是记录/行结尾的分隔符(例如CR LF等)?我不认为我对前者有什么问题,split()很好用。是nextLine()给了我一个问题。最简单的测试方法是读取文件并查看您得到了多少记录。如果超过967,则发生断线。我想,我可以提供更好的测试程序: