private void save() { Map modifiedProperties = propSet.getModifiedProperties(); println(); println("╭───────────────────────┈┈┈┈"); println("│ 保存文件 " + getURI() + "..."); println("│┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈"); try { OutputStream os = propSet.getUserPropertiesFile().getResource().getOutputStream(); String charset = propSet.getUserPropertiesFile().getCharset(); fileWriter = new PrintWriter(new OutputStreamWriter(os, charset), true); } catch (IOException e) { throw new ConfigWizardException(e); } try { List[] keyGroups = getSortedKeys(modifiedProperties, 2); for (int i = 0; i < keyGroups.length; i++) { List keys = keyGroups[i]; // 找出最长的名称 int maxLength = -1; for (Iterator j = keys.iterator(); j.hasNext(); ) { String key = (String) j.next(); int length = key.length(); if (length > maxLength && length < MAX_ALIGN) { maxLength = length; } } // 输出property项 for (Iterator j = keys.iterator(); j.hasNext(); ) { String key = (String) j.next(); String value = (String) modifiedProperties.get(key); if (value == null) { value = ""; } value = value.replaceAll("\\\\", "\\\\\\\\"); StringBuffer buffer = new StringBuffer(); buffer.append(key); for (int k = 0; k < maxLength - key.length(); k++) { buffer.append(' '); } buffer.append(" = ").append(value); println(buffer); } if (i < keyGroups.length - 1) { println(); } } } finally { fileWriter.close(); fileWriter = null; } println("└───────┈┈┈┈┈┈┈┈┈┈┈"); println(" 已保存至文件: " + getURI()); propSet.reloadUserProperties(); }
private String getURI() { return propSet.getUserPropertiesFile().getURI().toString(); }