code: protected ColumnType[] detectColumnTypes(Reader reader, CsvReadOptions options) {
          boolean header = options.header();
          int linesToSkip = header ? 1 : 0;
  
          CsvParser parser = csvParser(options);
  
          try {
              return getTypes(reader, options, linesToSkip, parser);
          } finally {
              parser.stopParsing();
              // we don't close the reader since we didn't create it
          }
      }
docs: Estimates and returns the type for each column in the delimited text file {@code file}
  <p>
  The type is determined by checking a sample of the data in the file. Because only a sample of the data is
  checked,
  the types may be incorrect. If that is the case a Parse Exception will be thrown.
  <p>
  The method {@code printColumnTypes()} can be used to print a list of the detected columns that can be
  corrected and
  used to explicitly specify the correct column types.