Java怎么用DOM4J写XML到文件并格式化

用DOM4J写XML到文件并格式化需两步:先构建Document对象,再用OutputFormat设置缩进换行后通过XMLWriter输出;关键在调用OutputFormat.createPrettyPrint()并指定UTF-8编码。

用 DOM4J 写 XML 到文件并格式化,关键在于两步:构建 Document 对象,再用 OutputFormat 控制缩进与换行,最后用 XMLWriter 输出。

1. 添加依赖(Maven)

确保项目已引入 DOM4J(推荐 2.1.4+,对 Java 8+ 更友好):


  org.dom4j
  dom4j
  2.1.4

2. 创建 Document 并添加内容

先新建 Document 和根元素,再逐层添加子元素和文本:

  • DocumentHelper.createDocument() 创建空文档
  • addElement("root") 添加根节点
  • 链式调用 addElement("child").addText("value") 快速写内容

3. 设置格式化输出(重点)

不设置格式,生成的 XML 会是“一行到底”。必须用 OutputFormat 指定缩进和换行:

  • OutputFormat.createPrettyPrint() 是最常用方式,自动启用缩进、换行、空格
  • 可选设置:format.setIndentSize(2) 控制每级缩进空格数
  • 可选设置:format.setNewlines(true)format.setTrimText(false) 保持可读性

4. 写入文件(带异常处理)

XMLWriter 将格式化后的 Document 写入 FileOutputStream

  • 务必指定字符集(如 UTF-8),避免中文乱码:new OutputStreamWriter(out, "UTF-8")
  • 记得 writer.close(),否则内容可能未刷出
  • 建议用 try-with-resources 自动关闭流(DOM4J 2.1+ 支持 XMLWriter 实现 AutoCloseable

基本上就这些。只要 OutputFormat 配对了,XML 就能清晰缩进、换行可读,不复杂但容易忽略。