code: @Override
      public void writeMetadata(List<Column> columns) throws IOException {
          Writer writer = getWriter();
          String delimiter = getDelimiter();
          String endline = getEndline();
  
          writer.write(COLUMN_HEADING_ID);
          writer.write(delimiter);
          writer.write(COLUMN_HEADING_NAME);
          writer.write(delimiter);
          writer.write(COLUMN_HEADING_TYPE);
          writer.write(delimiter);
          writer.write(COLUMN_HEADING_DATA_LENGTH);
          writer.write(delimiter);
          writer.write(COLUMN_HEADING_FORMAT);
          writer.write(delimiter);
          writer.write(COLUMN_HEADING_LABEL);
          writer.write(endline);
          for (Column column : columns) {
              writer.write(String.valueOf(column.getId()));
              writer.write(delimiter);
              checkSurroundByQuotesAndWrite(writer, delimiter, column.getName());
              writer.write(delimiter);
              writer.write(column.getType().getName().replace(JAVA_NUMBER_CLASS_NAME, OUTPUT_NUMBER_TYPE_NAME).replace(
                      JAVA_STRING_CLASS_NAME, OUTPUT_STRING_TYPE_NAME));
              writer.write(delimiter);
              writer.write(String.valueOf(column.getLength()));
              writer.write(delimiter);
              if (!column.getFormat().isEmpty()) {
                  checkSurroundByQuotesAndWrite(writer, delimiter, column.getFormat().toString());
              }
              writer.write(delimiter);
              checkSurroundByQuotesAndWrite(writer, delimiter, column.getLabel());
              writer.write(endline);
          }
          writer.flush();
      }
docs: The method to export a parsed sas7bdat file metadata (stored as an object of the {@link SasFileReaderImpl} class)
  using {@link CSVMetadataWriterImpl#writer}.
  
  @param columns the {@link Column} class variables list that stores columns description from the sas7bdat file.
  @throws java.io.IOException appears if the output into writer is impossible.