private void readHeaderToken() throws IOException {
    byte archiveVersion = dataIn.readByte();
    if (archiveVersion <= 1) {
      throw new GemFireIOException(
          String.format("Archive version: %s is no longer supported.",
              archiveVersion),
          null);
    }
    if (archiveVersion > ARCHIVE_VERSION) {
      throw new GemFireIOException(
          String.format("Unsupported archive version: %s .  The supported version is: %s .",

              archiveVersion, ARCHIVE_VERSION),
          null);
    }

    this.archiveVersion = archiveVersion;
    startTimeStamp = dataIn.readLong();
    systemId = dataIn.readLong();
    systemStartTimeStamp = dataIn.readLong();
    timeZoneOffset = dataIn.readInt();
    timeZoneName = dataIn.readUTF();
    systemDirectory = dataIn.readUTF();
    productVersion = dataIn.readUTF();
    os = dataIn.readUTF();
    machine = dataIn.readUTF();
  }
ArchiveSplitter provides APIs to read statistic snapshots from an archive file.
geode-core/src/main/java/org/apache/geode/internal/statistics/ArchiveSplitter.java