一键修改配置文件
import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.Arrays; import java.util.Properties; /** * @author: rongyu * @Date: 2018-07-23 14:04:29 */ public class Main { /** * 配置文件,你需要修改的键值对写入进去 */ private static String domainProperties = "A.properties"; /** * 添加文件的备注 */ private static String comments = "rongyu"; private static String projectPath = "E:\\code\\yousesky_hry_code"; public static void main(String[] args) throws IOException { traverseFolder(projectPath); } public static String getMyProperties(String myProperties) { return Main.class.getResource("/").getPath() + myProperties; } public static Properties getProperties(String propertiesPath) throws IOException { FileReader fileReader = new FileReader(propertiesPath); Properties properties = new Properties(); properties.load(fileReader); fileReader.close(); return properties; } public static Properties transformation(Properties from, Properties to) { to.stringPropertyNames().forEach( x -> { String value = from.getProperty(x); if (value != null && !"".equals(value)) to.setProperty(x, value); } ); return to; } public static void update(String path, String comments) throws IOException { String myPropertiesPath = getMyProperties(domainProperties); Properties myProperties = getProperties(myPropertiesPath); Properties targetProperties = getProperties(path); Properties transProperties = transformation(myProperties, targetProperties); transProperties.store(new FileOutputStream(path), comments); } public static void traverseFolder(String path) { File file = new File(path); if (file.exists()) { File[] files = file.listFiles(); if (null == files || files.length == 0) { return; } else { Arrays.stream(files).forEach( x -> { if (x.isDirectory()) traverseFolder(x.getAbsolutePath()); else { String name = x.getName(); if (name.contains(".")) { String substring = name.substring(name.lastIndexOf(".", name.length())); if (substring.equals(".properties")) { // TODO 替换文件 System.out.println(x.getAbsolutePath()); try { update(x.getAbsolutePath(), comments); } catch (IOException e) { System.out.println(x.getAbsolutePath() + "修改失败"); e.printStackTrace(); } } } } } ); } } else { System.out.println("文件不存在!"); } } }