Java 读写 XML 数据文件时出现“文件过早结束”错误
Posted
技术标签:
【中文标题】Java 读写 XML 数据文件时出现“文件过早结束”错误【英文标题】:"Premature end of file" error when Java read and writes XML data files 【发布时间】:2010-10-17 00:54:36 【问题描述】:我一直在使用 JDOM 库通过 Java Servlet 读写 XML 文件。
问题是,当我使用 AJAX 向在 XML 文件中读取和写入数据的 servlet 发送许多请求时,很多时候它无法显示错误:文件过早结束。如何将所有这些读/写同步到文件,或者有没有其他方法可以防止这些问题?如果需要更多详细信息,请告诉我。
在这种情况下使用线程有什么好处吗?
非常感谢!
【问题讨论】:
【参考方案1】:尝试将所有写入请求添加到 处理队列,然后通过队列的这些元素构建/附加 XML。
【讨论】:
【参考方案2】:我也遇到过这个问题。我的经验是……
-
清理项目
重建项目
那么它就会运行成功....
【讨论】:
【参考方案3】:我遇到过这类问题,但完全不一样。我正在分享我对这个错误的经验。如有不便,敬请见谅。
我遇到了以下问题
我必须用动态变量数据形成一个 xml 文件。并通过 Java 中的 PostMethod 将该 xml 发布到 URL。
通常它可以工作。但是当动态变量数据为空时。然后它显示“文件过早结束”。
解决方案:
-
只检查变量是否为空。它对我有用。
【讨论】:
仅供参考,“完全不一样”并不是你的意思,我想。应该是“不完全一样”。 :)【参考方案4】:两种可能的解决方案是:
将您的文件写入 thename.xml.part,然后在完成/关闭后重命名为 thename.xml,这使得写入更接近于原子性 - 阅读器在确定完成之前无法读取它,只要它只查找“.xml”文件。 或者,使用数据库,原子性就是他们所做的。【讨论】:
你能详细说明一下答案吗?我遇到了同样的错误,但无法理解你的答案。 @Ry4an 完美解决方案!以上是关于Java 读写 XML 数据文件时出现“文件过早结束”错误的主要内容,如果未能解决你的问题,请参考以下文章
System.Xml.XmlException '根级别的数据无效,第 1 行,位置 1' 当我从 1 个 xml 文件更改为 5 时出现错误
ORA-06502: PL/SQL: 尝试将 XML 保存到文件时出现数字或值错误
出现换行时转换包含 XML 数据的 stramreader 文本时出现问题
接受 SDK 许可时出现“java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema”