将Document对象转换为Byte

我是这样的init对象:

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); 

之后,我通过将数据插入doc对象来构建XML文件。

最后,我将内容写入计算机上的文件。

我的问题是如何将doc的内容写入byte[] ?*

这就是我将内容写入XML文件的方式:

 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("changeOut.xml")); // Output to console for testing // StreamResult result = new StreamResult(System.out); transformer.transform(source, result); 

OutputStream而不是File传递给StreamResult构造函数。

  ByteArrayOutputStream bos=new ByteArrayOutputStream(); StreamResult result=new StreamResult(bos); transformer.transform(source, result); byte []array=bos.toByteArray(); 

这项工作对我来说:

 public byte[] documentToByte(Document document) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); org.apache.xml.security.utils.XMLUtils.outputDOM(document, baos, true); return baos.toByteArray(); } 

把ByteArrayOutputStream放在你拥有文件的地方你应该很好。