文件流的操作 博客分类: 其他 其他
任何文件都可以转化成流直接操作,或者流再转化成该格式对应的类实例操作
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);
}
}
}
推荐阅读
-
文件流的操作 博客分类: 其他 其他
-
spring提供的工具类1:文件资源操作和 Web 相关工具类 博客分类: spring WebSpringlog4j应用服务器Hibernate
-
lucene 基于ftp等其他文件系统创建索引和搜索索引的支持 博客分类: 原创 Lucenecommos-vfscommon-netftp
-
创建自定义的事件,然后透过RelayEvents与其他组件发生联系 博客分类: Extjs EXTPHP编程JavaScriptprototype
-
Python实现的读取文件内容并写入其他文件操作示例
-
Python实现的读取文件内容并写入其他文件操作示例
-
python中文件操作的其他方法
-
Python文件管理:文件操作完整的过程、文件操作的其他模式讲解
-
python中文件操作的其他方法
-
Python文件管理:文件操作完整的过程、文件操作的其他模式讲解