替换Properties.list

时间:2017-03-16 05:29:14

标签: java

我需要将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吗?

1 个答案:

答案 0 :(得分:0)

第一种方法很好。

关键在于,根据您对二进制数据的处理方式,需要进一步编码。例如,您可以使用Base64编码将您的字节转换为可以移动的字符#34;很容易。