java将字节保存到xmlfile。无效字符
书名差不多说明了这一点
我计算了一个文本文件的SHA1哈希,到目前为止还不错。我写在一本杂志上。xml文件,只需使用普通的FileOutputStream即可
FileOutputStream fos = new FileOutputStream(out.xml);
fos.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>".getBytes());
fos.write("<Digest xmlns=\"http://testnamespace\"".getBytes());
fos.write(getFileHash("C:\\myfile.txt"));
fos.write("</Digest>".getBytes());
fos.flush();
fos.close();
如果我现在想将xml解析为DOM,根据我传递的输入文件,我总是会遇到诸如“无效Unicode字符0x06、0x1b”之类的异常
到目前为止我试过: 文件流的不同包装(例如PrintWriter) getBytes(“UTF-8”)
请告诉我如何将这些哈希保存为xml,而不必面对这个问题
谢谢!
# 1 楼答案
我假设
getFileHash
方法返回二进制数据(比如字节[])。然而,XML是文本,所以不能将任意二进制数据放入其中。解决这个问题的一种方法是将二进制数据转换为字符,例如使用十六进制编码或base64编码此外,各种
getBytes()
调用将根据平台编码返回字节,该编码可能是UTF-8,也可能不是UTF-8。显式指定编码要安全得多