Java:使用IndentingXMLStreamwriter会导致文件大小

时间:2012-04-05 15:31:27

标签: java xml streamwriter indentation

我正在使用IndentingXMLStreamWriter-Class来获取格式良好的XML文件。代码如下所示:

XMLOutputFactory output = XMLOutputFactory.newInstance();
XMLStreamWriter streamWriter;
IndentingXMLStreamWriter indentingStreamWriter;
streamWriter = output.createXMLStreamWriter(new FileOutputStream(fileName));
indentingStreamWriter = new IndentingXMLStreamWriter(streamWriter);
indentingStreamWriter.setIndentStep("    "); 
indentingStreamWriter.writeStartDocument("UTF-8", "1.0"); 

生成的XML的大小和深度非常大。当我使用缩进的streamwriter时,文件的大小是使用“普通”streamwriter生成的文件的两倍多。是否有更好的方法来实现缩进或我做错了什么?

提前致谢

拉​​斯

更新: dty当然是绝对正确的。我问自己,以更紧凑的方式(例如制表符)进行缩进是否是个好主意。有什么想法或建议吗?

1 个答案:

答案 0 :(得分:2)

冒着听起来愚蠢的风险,你正在获取XML文件并添加缩进(每个级别4个字符)和换行符(大概)。它会变得更大。

更大的程度取决于XML标记的大小以及它们的嵌套程度。如果它们的标签非常小,那么空白的相对大小非常大,可以想象地使文件的大小加倍。如果它们是深层嵌套的,那么你将为每一行添加大量空间。

如果你想要一个漂亮的印刷文件,你似乎没有很多选择。你可以使用更少的空格(2而不是4),甚至是制表符(尽管下一个人可能会射击你这样做),但是,实际上,我认为这是 c'est la vie的案例