private void readResourceTypeToken() throws IOException {
    int resourceTypeId = dataIn.readInt();
    skipUTF(); // String resourceTypeName = dataIn.readUTF();
    skipUTF(); // String resourceTypeDesc = dataIn.readUTF();
    int statCount = dataIn.readUnsignedShort();
    byte[] typeCodes = new byte[statCount];

    for (int i = 0; i < statCount; i++) {
      skipUTF(); // String statName = dataIn.readUTF();
      typeCodes[i] = dataIn.readByte();
      skipBoolean(); // boolean isCounter = dataIn.readBoolean();
      if (archiveVersion >= 4) {
        skipBoolean(); // boolean largerBetter = dataIn.readBoolean();
      }
      skipUTF(); // String units = dataIn.readUTF();
      skipUTF(); // String desc = dataIn.readUTF();
    }
    if (resourceTypeId >= resourceTypes.length) {
      byte[][] tmp = new byte[resourceTypeId + 128][];
      System.arraycopy(resourceTypes, 0, tmp, 0, resourceTypes.length);
      resourceTypes = tmp;
    }
    resourceTypes[resourceTypeId] = typeCodes;

    addGlobalToken(myIs.getBytes());
  }
ArchiveSplitter provides APIs to read statistic snapshots from an archive file.
geode-core/src/main/java/org/apache/geode/internal/statistics/ArchiveSplitter.java