我需要读取一个 XML 文件(如果存在 - 如果不存在,那么我将创建该文件),修改一些标签并将 xml 写回。我正在这样做
InputStream in = new FileInputStream(userFile);
SAXReader reader = new SAXReader();
Document document = reader.read(in);
Element root = document.getRootElement();
...
并写回
FileUtils.writeByteArrayToFile(userFile, getFormatedXML(document).getBytes());
...
private String getFormatedXML(Document doc) {
try {
String encoding = doc.getXMLEncoding();
if (encoding == null)
encoding = "UTF-8";
Writer osw = new StringWriter();
OutputFormat opf = new OutputFormat(" ", true, encoding);
XMLWriter writer = new XMLWriter(osw, opf);
writer.write(doc);
writer.close();
return osw.toString();
} catch (IOException e) {
}
return "ERROR";
}
问题是,每次回写后,都会创建一个额外的换行符。如果我将 outputFormat 的参数从 true 切换为 false,则根本不会写入换行符。
有没有简单的方法来解决这个问题?
非常感谢豪克