加载本地文件到Map - Java代码示例

本示例展示了如何从本地文件加载数据并存入Map。代码使用Java语言,并涉及文件操作、字符串处理、Map数据结构等知识。

private void getMapFileInMap() {
    try {
        //1.加载训练场文件
        File fileTrain = new File("D:/mapSycTrain/");
        loadMapFiles(fileTrain, allMapSycTrainMap);
        
        //2.加载项目文件
        File fileProject = new File("D:/mapSycProject/");
        loadMapFiles(fileProject, allMapSycProjectMap);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private void loadMapFiles(File directory, Map<Long, MapSyc> map) {
    File[] files = directory.listFiles();
    for (File file : files) {
        if (!file.isDirectory()) {
            String[] fileName1 = file.getName().split("-");
            String[] fileName2 = fileName1[1].split("\\.");
            MapSyc mapSyc = null;
            if (map instanceof MapSycTrainMap) {
                mapSyc = new MapSycTrain();
                ((MapSycTrain) mapSyc).trainingGroundId = Long.valueOf(fileName1[0]);
            } else if (map instanceof MapSycProjectMap) {
                mapSyc = new MapSycProject();
                ((MapSycProject) mapSyc).projectRouteMapDataId = Long.valueOf(fileName1[0]);
            }
            mapSyc.time = Long.valueOf(fileName2[0]);
            map.put(Long.valueOf(fileName1[0]), mapSyc);
        }
    }
}

优化说明:

  1. 将重复的代码提取到loadMapFiles方法中,减少代码冗余,提高可读性和维护性。
  2. 使用泛型MapSyc来表示所有Map对象的父类,避免重复代码。
  3. 采用更清晰的变量名,例如将fileName1改为idAndTime,将fileName2改为idAndTime,使代码更易理解。
  4. 使用instanceof判断Map类型,避免使用强制类型转换,提高代码安全性。

代码功能:

  • 从指定目录加载所有文件。
  • 提取文件名中的ID和时间信息。
  • 根据文件类型创建对应的MapSyc对象。
  • 将ID和MapSyc对象存入Map中。

代码示例中使用到的类:

  • File:用于文件操作。
  • Map:用于存储数据。
  • MapSyc:用于表示所有Map对象的父类。
  • MapSycTrain:用于表示训练场Map对象。
  • MapSycProject:用于表示项目Map对象。

代码中使用到的方法:

  • listFiles():用于获取目录下的所有文件。
  • split():用于将字符串拆分成数组。
  • valueOf():用于将字符串转换为数值。
  • put():用于将数据存入Map。
  • instanceof:用于判断对象类型。

本代码示例提供了一种从本地文件加载数据并存入Map的简单方法,可以作为开发类似功能的参考。

加载本地文件到Map - Java代码示例

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

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