美文网首页
一键修改配置文件

一键修改配置文件

作者: 激萌咖啡 | 来源:发表于2018-07-23 19:12 被阅读0次
    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("文件不存在!");
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:一键修改配置文件

          本文链接:https://www.haomeiwen.com/subject/rfzjmftx.html