code: private void processNextPage() throws IOException {
          int bitOffset = sasFileProperties.isU64() ? PAGE_BIT_OFFSET_X64 : PAGE_BIT_OFFSET_X86;
          currentPageDataSubheaderPointers.clear();
  
          try {
              sasFileStream.readFully(cachedPage, 0, sasFileProperties.getPageLength());
          } catch (EOFException ex) {
              eof = true;
              return;
          }
  
          readPageHeader();
          if (currentPageType == PAGE_META_TYPE_1 || currentPageType == PAGE_META_TYPE_2
                  || currentPageType == PAGE_AMD_TYPE) {
              List<SubheaderPointer> subheaderPointers = new ArrayList<SubheaderPointer>();
              processPageMetadata(bitOffset, subheaderPointers);
              if (currentPageType == PAGE_AMD_TYPE) {
                  processMissingColumnInfo();
              }
          }
      }
docs: Put next page to cache and read it's header.
  
  @throws IOException if reading from the {@link SasFileParser#sasFileStream} string is impossible.