以下代码演示了如何将本地文件加载到 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 块捕获可能发生的异常,并进行合理的处理。

使用方法:

  1. 确保 allMapSycTrainMapallMapSycProjectMap 已经创建并初始化。
  2. 调用 getMapFileInMap() 方法即可将文件加载到相应的 Map 中。

建议:

  • 使用更具描述性的变量名。
  • 可以使用反射机制进一步简化代码,避免重复的类型判断。
  • 考虑使用更安全的路径处理方式,例如使用 Paths.get() 方法。

通过以上优化和建议,你的代码将更加清晰、高效,并易于维护。

Java 加载本地文件到 Map 的最佳实践

原文地址: https://www.cveoy.top/t/topic/qtey 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录