我需要将Properties对象转换为byte [],我使用
byte[] bytes = SerializationUtils.serialize(properties);
但是,由于所有数据都已损坏,我看起来并没有很好地运作,我看到了一些符号和特殊章程。所以我使用了以下方法
StringWriter writer = new StringWriter();
properties.list(new PrintWriter(writer));
String fileContent = writer.getBuffer().toString();
byte[] bytes = fileContent.getBytes();
上面的方法看起来工作得很好,但是现在调用properties.list会产生一些问题,因为我得到的文字就像" - 列出属性 - "在UI方面,看起来像属性列表方法已通过out.println
硬编码在字符串上方public void list(PrintWriter out) {
out.println("-- listing properties --");
Hashtable h = new Hashtable();
enumerate(h);
for (Enumeration e = h.keys() ; e.hasMoreElements() ;) {
String key = (String)e.nextElement();
String val = (String)h.get(key);
if (val.length() > 40) {
val = val.substring(0, 37) + "...";
}
out.println(key + "=" + val);
}
}
还有其他更好的方法来实现它或者替换Properties.list吗?
答案 0 :(得分:0)
第一种方法很好。
关键在于,根据您对二进制数据的处理方式,需要进一步编码。例如,您可以使用Base64编码将您的字节转换为可以移动的字符#34;很容易。