在写javaweb小项目的时候,用dom4j解析xml报出如下错误:

org.dom4j.DocumentException:Error    .......    Nested exception: 文件提前结束。

 package com.miragic.utils;

 import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.UnsupportedEncodingException; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; //操作XML文件的方法
public class JaxpUtils { static String path; static {
path=JaxpUtils.class.getClassLoader().getResource("users.xml").getPath(); }
public static Document getDocument() {
//创建一个dom4j解析器
try {
SAXReader reader=new SAXReader();
Document document=reader.read(path);
return document;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
} public static void write2xml(Document document) { try {
XMLWriter writer=new XMLWriter(new FileOutputStream(path),OutputFormat.createPrettyPrint()); } catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

百度了好久,有的说是xml没有根目录,有的说是xml格式不对,然后我检查了xml格式并且重写了好几次,但都木有用,以下为xml代码:

<?xml version="1.0" encoding="UTF-8"?>
<users>
<user username="miragic" password="000000" email="469548329@qq.com" birthday="1997-2-1" ></user>
</users>

  同时,还排除了一下编码的错误,并没有发现异常.

错误原因:解析xml没有关流

解决方法:

package com.miragic.utils;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; //操作XML文件的方法
public class JaxpUtils { static String path; static {
path=JaxpUtils.class.getClassLoader().getResource("users.xml").getPath(); } //private static Document document; public static Document getDocument() {
//创建一个dom4j解析器
try {
SAXReader reader=new SAXReader();
Document document=reader.read(path);
return document;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
} public static void write2xml(Document document) { try {
XMLWriter writer=new XMLWriter(new FileOutputStream(path),OutputFormat.createPrettyPrint());
writer.write(document) ;
writer.close() ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
} } }

  加了两行

writer.write(document);

writer.close();

问题解决.

总结:一个简单的小错误,说白了还是理解的不够透彻导致写代码的时候丢三落四,好歹问题解决了,找bug的时候内心真的是绝望啊!!!!!!!

最新文章

  1. Lining.js - 为CSS提供 ::nth-Line 选择器功能
  2. JSON value
  3. 解决ecshop登陆自动退出的莫名现象
  4. PHP裁剪图片
  5. WebService开发应用
  6. GPRS优点介绍及GPRS上网相关知识(转)
  7. 初识DIV+CSS
  8. OAuth 2 开发人员指南(Spring security oauth2)
  9. 洛谷P1091 合唱队形
  10. mysql 5.7 ERROR 1054(42S22) Unknown column &#39;password&#39; in ‘field list’ 报错
  11. 【Android】android:windowSoftInputMode属性详解
  12. ADC裸机程序
  13. 浅谈 OpenResty
  14. [转]Reporting Services 中的身份验证类型
  15. ios 7新特性
  16. Java高性能并发编程——线程池
  17. CSS布局框架 960GS
  18. java中集合部分的笔记
  19. 【LG4735】最大异或和
  20. 八大CMS内容管理系统推荐

热门文章

  1. Hadoop进阶命令使用介绍
  2. 《重学 Java 设计模式》PDF 出炉了 - 小傅哥,肝了50天写出18万字271页的实战编程资料
  3. commons-fileload图片文件上传工具 , servlet文件图片上传案列
  4. python发送邮件插件
  5. Ethical Hacking - Web Penetration Testing(2)
  6. GPO - Backup and Restore
  7. OSCP Learning Notes - WebApp Exploitation(2)
  8. 【真实分享】学习linux!让我工资翻5倍!从月薪3000到年薪18W!只用了六个月!
  9. odoo12数据库自动化备份
  10. springcloud之Eureka注册中心