JAXB Marshal不会从字节数组转换分隔符

时间:2014-06-19 07:51:01

标签: java arrays xml jaxb byte

我需要创建xml文件。 我有一个PDF文档,转换为字节数组:

document.setContent(Base64.encode(fileData,true).getBytes(Charset.forName("UTF-8")));
方法Base64.encode中的

(fileData,true) - " true"参数是每76个字符设置行分隔符。

然后是以下代码:

File file = new File("C:\\123.xml");
FileOutputStream tmpStream = new FileOutputStream(file);
getMarshaller(contextPath).marshal(jaxbElement, tmpStream);
Writer out = new BufferedWriter(new OutputStreamWriter(tmpStream));
out.flush();
out.close();

没有分隔符的文件中的最终结果:

<document>
 <content>SlZCRVJpMHhMak1OSmVMano5TU5DamcySURBZ2IySnFEUW84UENBdlRHbHVaV0Z5YVhwbFpDQXhJQTB2VENBek5qQTBOemNnRFM5SQ0KSUZzZ09ESTVJREl3TWlCZElBMHZUeUE0T1NBTkwwVWdNV</content>
</document>

我无法理解为什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

检查“行尾处理”部分here 首先,我建议你用“&amp;#10;”替换所有CRLF。 (在写入XML文件之前,换行的unicode字符)。