public byte[] toByteArray() { Map<String, byte[]> datas = new HashMap<>(); Iterator<Map.Entry<String, Property>> itr = propMap.entrySet().iterator(); while (itr.hasNext()) { Map.Entry<String, Property> entry = itr.next(); Property prop = entry.getValue(); datas.put(prop.key, prop.value.getBytes()); } return EncodeUtil.toByteArray(datas); }
public void fromByteArray(byte[] buffer) throws IOException { try { Map<String, byte[]> datas = EncodeUtil.toKeyValue(buffer); Iterator<Map.Entry<String, Property>> itr = propMap.entrySet().iterator(); while (itr.hasNext()) { Map.Entry<String, Property> entry = itr.next(); Property prop = entry.getValue(); byte[] value = datas.get(prop.key); if (value != null) { // 値が書き込まれていた場合はそちらを優先 prop.value = new String(value); } else { // 値が書き込まれていないので、デフォルトを復元 prop.value = prop.defaultValue; } } } catch (Exception e) { LogUtil.log(e); throw new IOException("Format Error"); } }