public String inspect(PrintWriter pw) throws MetadataException, IOException {
    String header =
        String.format(
            "=============================\n"
                + "== PBTree File Sketch Tool ==\n"
                + "=============================\n"
                + "== Notice: \n"
                + "==  Internal/Entity presents as (name, is_aligned, child_segment_address)\n"
                + "==  Measurement presents as (name, data_type, encoding, compressor, alias_if_exist)\n"
                + "=============================\n"
                + "Belong to StorageGroup: [%s], segment of SG:%s, total pages:%d\n",
            storageGroupName == null ? "NOT SPECIFIED" : storageGroupName,
            Long.toHexString(lastSGAddr),
            lastPageIndex + 1);
    if (pw == null) {
      pw = new PrintWriter(System.out);
    }
    pw.print(header);
    pageManager.inspect(pw);
    return String.format("SchemaFile[%s] had been inspected.", this.filePath);
  }
This class is mainly aimed to manage space all over the file.

<p>This class is meant to open a .pst(Persistent mTree) file, and maintains the header of the
file. It Loads or writes a page length bytes at once, with an 32 bits int to index a page inside
a file. Use SlottedFile to manipulate segment(sp) inside a page(an array of bytes).
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/schemafile/SchemaFile.java