Java 加载本地文件到 Map 的最佳实践
以下代码演示了如何将本地文件加载到 Map 中,并进行了优化以提高代码可读性和效率:
private void loadFilesToMap(String folderPath, Map<Long, Object> map) {
File folder = new File(folderPath);
File[] files = folder.listFiles();
for (File file : files) {
if (!file.isDirectory()) {
String[] fileName1 = file.getName().split("-");
String[] fileName2 = fileName1[1].split("\.");
Object obj = null;
if (map instanceof MapSycTrain) {
MapSycTrain mapSycTrain = new MapSycTrain();
mapSycTrain.trainingGroundId = Long.valueOf(fileName1[0]);
mapSycTrain.time = Long.valueOf(fileName2[0]);
obj = mapSycTrain;
} else if (map instanceof MapSycProject) {
MapSycProject mapSycProject = new MapSycProject();
mapSycProject.projectRouteMapDataId = Long.valueOf(fileName1[0]);
mapSycProject.time = Long.valueOf(fileName2[0]);
obj = mapSycProject;
}
map.put(Long.valueOf(fileName1[0]), obj);
}
}
}
private void getMapFileInMap() {
try {
loadFilesToMap("D:/mapSycTrain/", allMapSycTrainMap);
loadFilesToMap("D:/mapSycProject/", allMapSycProjectMap);
} catch (Exception e) {
e.printStackTrace();
}
}
代码优化要点:
- 提取公共逻辑: 将加载文件到 Map 的逻辑抽象成
loadFilesToMap方法,提高代码可复用性和可读性。 - 类型判断: 使用
instanceof操作符判断 Map 的类型,根据不同类型创建不同的对象,并将其添加到 Map 中。 - 异常处理: 使用
try-catch块捕获可能发生的异常,并进行合理的处理。
使用方法:
- 确保
allMapSycTrainMap和allMapSycProjectMap已经创建并初始化。 - 调用
getMapFileInMap()方法即可将文件加载到相应的 Map 中。
建议:
- 使用更具描述性的变量名。
- 可以使用反射机制进一步简化代码,避免重复的类型判断。
- 考虑使用更安全的路径处理方式,例如使用
Paths.get()方法。
通过以上优化和建议,你的代码将更加清晰、高效,并易于维护。
原文地址: https://www.cveoy.top/t/topic/qtey 著作权归作者所有。请勿转载和采集!