public CsvWriter<String[]> build() {
			final var header = this.header;
			final var separator = this.separator;
			final var quote = this.quote;
			final var embedding = this.embedding;

			final var joiner = new ColumnJoiner(separator, quote, embedding);

			return (values, writer) -> {
				final var count = new AtomicLong();

				final Stream<String> hdr = header != null
					? Stream.ofNullable(new ColumnJoiner(separator, quote).join(header))
					: Stream.empty();

				Stream.concat(hdr, values.map(joiner::join))
					.forEach(line -> {
						writeln(line, writer);
						count.getAndIncrement();
					});

				flush(writer);
				return count.get();
			};
		}
Builds a CSV writer, which writes {@code String[]} columns.

@return {@code String[]} columns reader
jenetics.incubator/src/main/java/io/jenetics/incubator/csv/CsvWriter.java