public StatisticsFile complete() {
      checkNotClosed();
      try {
        puffinWriter.finish();
        List<BlobMetadata> blobMetadata = puffinWriter.writtenBlobsMetadata();
        long fileSize = puffinWriter.fileSize();
        long footerSize = puffinWriter.footerSize();
        List<org.apache.iceberg.BlobMetadata> collect =
            blobMetadata.stream().map(GenericBlobMetadata::from).collect(Collectors.toList());
        return new GenericStatisticsFile(
            snapshotId, outputFile.location(), fileSize, footerSize, collect);
      } catch (IOException e) {
        throw new UncheckedIOException(e);
      } finally {
        close();
      }
    }
Util class for write and read Iceberg statistics file {@link StatisticsFile}.
amoro-format-iceberg/src/main/java/org/apache/amoro/utils/StatisticsFileUtil.java