<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Config id="sysId">666</Config> <Config id="sysName">en</Config> </Configuration>
import com.google.common.base.MoreObjects; import org.dom4j.*; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import java.io.*; import java.util.List; /** * Created by wfcfan on 2016/11/29. */ public class UserConfig implements Serializable { static private String CONFIG_XML_PATH = "D:\data\config.xml"; static private synchronized Document getConfigDocument() { SAXReader reader = new SAXReader(); Document document = null; try { if (CONFIG_XML_PATH.startsWith("/")) { document = reader.read(new File(CONFIG_XML_PATH)); } else { document = reader.read(CONFIG_XML_PATH); } } catch (DocumentException e) { e.printStackTrace(); } return document; } static public synchronized UserConfig getUserConfig() throws DocumentException { Element root = getConfigDocument().getRootElement(); List<Element> eles = root.elements(); UserConfig config = new UserConfig(); for (Element ele : eles) { String idAttr = ele.attribute("id").getValue(); if (idAttr.equals("sysId")) { config.setSysId(Integer.parseInt(ele.getTextTrim())); } else if (idAttr.equals("sysName")) { config.setSysName(ele.getTextTrim()); } } return config; } static public synchronized void setUserConfig(UserConfig config) { Document doc = getConfigDocument(); Element root = doc.getRootElement(); List<Element> eles = root.elements(); for (Element ele : eles) { String idAttr = ele.attribute("id").getValue(); if (idAttr.equals("sysId")) { ele.setText(String.valueOf(config.getSysId())); } else if (idAttr.equals("sysName")) { ele.setText(config.getSysName()); } } OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = null; try { writer = new XMLWriter(new FileOutputStream(CONFIG_XML_PATH), format); writer.write(doc); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } public UserConfig() { } public UserConfig(int id, String sysName) { this.sysId = id; this.sysName = sysName; } private int sysId; private String sysName; public int getSysId() { return sysId; } public void setSysId(int sysId) { this.sysId = sysId; } public String getSysName() { return sysName; } public void setSysName(String sysName) { this.sysName = sysName; } @Override public String toString() { return MoreObjects.toStringHelper(this) .add("sysId", sysId) .add("sysName", sysName) .toString(); } }