Java SAXException:null后出现意外的文件结尾

Java SAXException:null后出现意外的文件结尾,java,xml,sax,Java,Xml,Sax,我偶尔会从解析大量XML文件的过程中得到标题中的错误 这些文件本身看起来正常,并且在生成错误的相同文件上再次运行该过程也很正常 调用XMLReader.parse(InputStream is) 这可能是解析器中的错误(我使用的)?或者是关于我如何打开文件流的问题 不涉及多线程 短笛在当时似乎是个好主意,但我真的没有一个好的理由使用它。我将尝试切换到默认的SAX解析器,看看这是否有帮助 更新:没有帮助,我发现Piccolo在某些工作负载下速度要快得多,所以我回去了。这是多线程场景吗?也就是说,您

我偶尔会从解析大量XML文件的过程中得到标题中的错误

这些文件本身看起来正常,并且在生成错误的相同文件上再次运行该过程也很正常

调用
XMLReader.parse(InputStream is)

这可能是解析器中的错误(我使用的)?或者是关于我如何打开文件流的问题

不涉及多线程

短笛在当时似乎是个好主意,但我真的没有一个好的理由使用它。我将尝试切换到默认的SAX解析器,看看这是否有帮助


更新:没有帮助,我发现Piccolo在某些工作负载下速度要快得多,所以我回去了。

这是多线程场景吗?也就是说,您是否同时解析多个


在JRE中不使用默认XML解析器有什么特殊原因吗?

这是多线程场景吗?也就是说,您是否同时解析多个


您不在JRE中使用默认XML解析器有什么特殊原因吗?

我在XMLBeans下体验到了与Picolo类似的情况。在快速搜索之后,我发现了以下帖子:


文章指出,使用Apache Commons(v1.4及以后版本)类可能会解决此异常(抱歉,我自己没有尝试过)。

我在XMLBeans下体验到与Picolo类似的情况。在快速搜索之后,我发现了以下帖子:


帖子指出,使用Apache Commons(v1.4及以后版本)类可能会解决此异常(抱歉,我自己没有尝试过)。

我可能应该告诉这个故事的结尾:这是一个愚蠢的错误。有两个进程:一个生成XML文件,另一个读取XML文件。读取器只是扫描目录,并尝试处理它看到的每个新文件

每隔一段时间,读者都会在制作人完成编写之前检测到一个文件,因此它合法地引发了“意外文件结尾”的异常。因为我们在这里讨论的是小文件,所以这个事件非常罕见。当我来检查的时候,制作人已经完成了文件的编写,所以对我来说,解析器好像没有抱怨什么

我写了“不涉及多线程”。显然,这是非常误导的


一种解决方案是将文件写入其他位置,并仅在完成后将其移动到受监视的文件夹。更好的解决方案是使用适当的消息队列。

我可能应该告诉你这个故事的结局:这是一个愚蠢的错误。有两个进程:一个生成XML文件,另一个读取XML文件。读取器只是扫描目录,并尝试处理它看到的每个新文件

每隔一段时间,读者都会在制作人完成编写之前检测到一个文件,因此它合法地引发了“意外文件结尾”的异常。因为我们在这里讨论的是小文件,所以这个事件非常罕见。当我来检查的时候,制作人已经完成了文件的编写,所以对我来说,解析器好像没有抱怨什么

我写了“不涉及多线程”。显然,这是非常误导的


一种解决方案是将文件写入其他位置,并仅在完成后将其移动到受监视的文件夹。更好的解决方案是使用适当的消息队列。

@itsadok:您解决了这个问题吗?它仍然在未回答的问题列表中。@LordTorgamus:没有解决,仍然每隔一段时间就会出现这些异常。不过,我并没有积极调查此事。@itsadok:你解决了这个问题吗?它仍然在未回答的问题列表中。@LordTorgamus:没有解决,仍然每隔一段时间就会出现这些异常。不过,我并没有积极调查此事。有人能确认AutoCloseInputStream解决了这个问题吗?有人能确认AutoCloseInputStream解决了这个问题吗?