package com.wing.game.mapeditor.io; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * 配置文件 * @author Wing Mei * */ public class Config { public static final String ELEMENT_CONFIG = "Config"; public static final String ELEMENT_FILEPATH = "FilePath"; public static final String ATTRIBUTE_PATH = "Path"; private static final String ConfigName = "Config.xml"; private SAXReader saxReader = new SAXReader(); private ArrayList<String> filePaths = new ArrayList<>(); private static Config config; public static Config getInstance(){ if(config == null){ config = new Config(); } return config; } /* * 保存配置文件 */ public void saveConfig() { File file = new File(ConfigName); if (file.exists()) { file.delete(); } Document document = DocumentHelper.createDocument(); Element config = document.addElement(ELEMENT_CONFIG); for (String str : filePaths) { Element pathElement = config.addElement(ELEMENT_FILEPATH); pathElement.addAttribute(ATTRIBUTE_PATH, str); } XMLWriter writer; try { writer = new XMLWriter(new FileOutputStream(file)); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); } } /* * 读取配置文件 */ public void readConfig(){ File file = new File(ConfigName); if (file.exists()) { try { Document document = saxReader.read(file); Element rootElement = document.getRootElement(); System.out.println(rootElement.getName()); for (Iterator<Element> i = rootElement.elementIterator(); i.hasNext();) { Element e = i.next(); String pathStr = e.attributeValue(ATTRIBUTE_PATH); filePaths.add(pathStr); } } catch (DocumentException e) { e.printStackTrace(); } } } public ArrayList<String> getFilePaths() { return filePaths; } }