欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文件流的操作 博客分类: 其他 其他 

程序员文章站 2024-02-05 08:04:46
...

 

任何文件都可以转化成流直接操作,或者流再转化成该格式对应的类实例操作

  public static void loadAllFromYaml(String yamlPath) throws Exception {

        if (StringUtils.isEmpty(yamlPath)) {

            return;

        }

        File yamlFile = new File(yamlPath);

        if (!yamlFile.exists()) {

            return;

        }

        if (!yamlFile.isFile()) {

            return;

        }

        if (!yamlFile.canRead()) {

            return;

        }

 

        Yaml yaml = new Yaml();

        HashMap<String, Object> loads = yaml.loadAs(new BufferedReader(new FileReader(yamlFile)), HashMap.class);

        if (!CollectionUtils.isEmpty(loads)) {

            ObjectMapper mapper = new ObjectMapper();

            for (String key : loads.keySet()) {

                CustomDataSource customDataSource = mapper.convertValue(loads.get(key), CustomDataSource.class);

                if (StringUtils.isEmpty(customDataSource.getName()) || StringUtils.isEmpty(customDataSource.getDriver())) {

                    throw new Exception("Load custom datasource error: name or driver cannot be EMPTY");

                }

                if ("null".equals(customDataSource.getName().trim().toLowerCase())) {

                    throw new Exception("Load custom datasource error: invalid name");

                }

                if ("null".equals(customDataSource.getDriver().trim().toLowerCase())) {

                    throw new Exception("Load custom datasource error: invalid driver");

                }

 

                if (StringUtils.isEmpty(customDataSource.getDesc())) {

                    customDataSource.setDesc(customDataSource.getName());

                }

                if ("null".equals(customDataSource.getDesc().trim().toLowerCase())) {

                    customDataSource.setDesc(customDataSource.getName());

                }

 

                if (!StringUtils.isEmpty(customDataSource.getKeyword_prefix()) || !StringUtils.isEmpty(customDataSource.getKeyword_suffix())) {

                    if (StringUtils.isEmpty(customDataSource.getKeyword_prefix()) || StringUtils.isEmpty(customDataSource.getKeyword_suffix())) {

                        throw new Exception("Load custom datasource error: keyword prefixes and suffixes must be configured in pairs.");

                    }

                }

 

                if (!StringUtils.isEmpty(customDataSource.getAlias_prefix()) || !StringUtils.isEmpty(customDataSource.getAlias_suffix())) {

                    if (StringUtils.isEmpty(customDataSource.getAlias_prefix()) || StringUtils.isEmpty(customDataSource.getAlias_suffix())) {

                        throw new Exception("Load custom datasource error: alias prefixes and suffixes must be configured in pairs.");

                    }

                }

 

                List<String> versoins = null;

                if (dataSourceVersoin.containsKey(customDataSource.getName())) {

                    versoins = dataSourceVersoin.get(customDataSource.getName());

                } else {

                    versoins = new ArrayList<>();

                }

                if (StringUtils.isEmpty(customDataSource.getVersion())) {

                    versoins.add(0, JDBC_DATASOURCE_DEFAULT_VERSION);

                } else {

                    versoins.add(customDataSource.getVersion());

                }

 

                if (versoins.size() == 1 && versoins.get(0).equals(JDBC_DATASOURCE_DEFAULT_VERSION)) {

                    versoins.remove(0);

                }

 

                dataSourceVersoin.put(customDataSource.getName(), versoins);

                customDataSourceMap.put(getKey(customDataSource.getName(), customDataSource.getVersion()), customDataSource);

            }

        }

    }

 

相关标签: 其他