Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Android 正确终止SaxParser的流,避免;意外的文件结尾“;例外_Android_Xml_Saxparser_Saxparseexception - Fatal编程技术网

Android 正确终止SaxParser的流,避免;意外的文件结尾“;例外

Android 正确终止SaxParser的流,避免;意外的文件结尾“;例外,android,xml,saxparser,saxparseexception,Android,Xml,Saxparser,Saxparseexception,我和Android上引用的问题一样 给出的解决方案是使用URI而不是inputstream 我相信您可以像API所指示的那样使用inputStream,但显然,使用parse方法引发异常的流有问题。我可以确认所有数据都将进入流,SAXParseException表示所有数据都将进入parse方法,因为我可以使用getColumnNumber方法,该方法返回-1(表示整个流已被读取)。但是,解析方法似乎没有确认这是流的结束,因此引发了“意外的文件结束”(?) 有人能建议如何使用inputstrea

我和Android上引用的问题一样

给出的解决方案是使用URI而不是inputstream

我相信您可以像API所指示的那样使用inputStream,但显然,使用parse方法引发异常的流有问题。我可以确认所有数据都将进入流,SAXParseException表示所有数据都将进入parse方法,因为我可以使用getColumnNumber方法,该方法返回-1(表示整个流已被读取)。但是,解析方法似乎没有确认这是流的结束,因此引发了“意外的文件结束”(?)


有人能建议如何使用inputstream而不是URI作为解析方法的输入吗?

我遇到了这个问题,但原因是我接受了错误编码格式的inputstream。请确保首先将其放入正确的编码中(可能通过将其作为字节[]读入并使用字符串(字节[],字符串)构造函数),然后尝试将其放入SAX解析器


如果您想在Android中解析XML,可能最好使用。

最常用的设置是“UTF8”吗?你用了哪一个?我正在寻找inputstreamreader接受的字符集列表。这个链接是正确的来源吗?Thnx。我添加了这样的编码,InputStream=newbyteArrayInputStream(sData.getBytes(“UTF-8”);它成功了。然而,我确实不得不省略ByTestStream中列出的一个内部模式,也就是说,很高兴这有帮助,这是一个奇怪的问题,我认为我遗漏了一些东西,导致了这种情况的发生。无论是哪种方式,我认为在将原始数据传递给解析器之前,最好选择安全的编码格式。