# Spec SeqFileOut
Class for writing RAW, FASTA, FASTQ, EMBL and GENBANK files containing unaligned sequences.

Extends | FormattedFileOut
All Extended | FormattedFile, FormattedFileOut
Defined in | <seqan/seq_io.h>
Signature | `typedef FormattedFile<Fastq, Output> SeqFileOut;`

## Member Function Overview

### Member Functions Inherited From FormattedFile

- `getFileExtensions`
- `operatorTDependentContext`

## Interface Function Overview

- `void writeRecord(fileOut, meta, seq, qual);`
  Write one FormattedFileRecordConcept into a SeqFileOut object.
- `void writeRecords(fileOut, metas, seqs, quals);`
  Write many FormattedFileRecordConcept into a SeqFileOut object.

### Interface Functions Inherited From FormattedFile

- `atEnd`
- `close`
- `context`
- `format`
- `FormattedFile`
- `getFileExtensions`
- `guessFormat`
- `isOpen`
- `open`
- `setFormat`

### Interface Functions Inherited From FormattedFileOut

- `writeHeader`
- `writeRecord`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From FormattedFile

- `FileFormat`
- `FormattedFileContext`

## Interface Functions Detail

### `void writeRecord(fileOut, meta, seq, qual);`

Write one FormattedFileRecordConcept into a SeqFileOut object.

#### Parameters

`fileOut` | The SeqFileOut object to write into.
`meta` | The StringConcept object where to read the meta information from.
`seq` | The StringConcept object where to read the sequence information from.
`qual` | The StringConcept object where to read the quality information from.

#### Thrown Exceptions

`IOError` | On low-level I/O errors.
`ParseError` | On high-level file format errors.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `void writeRecords(fileOut, metas, seqs, quals);`

Write many FormattedFileRecordConcept into a SeqFileOut object.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### See Also

- writeRecord

#### Dox Sources

    /*!
     * @class SeqFileOut
     *
     * @extends FormattedFileOut
     *
     * @headerfile <seqan/seq_io.h>
     *
     * @brief Class for writing RAW, FASTA, FASTQ, EMBL and GENBANK files containing
     *        unaligned sequences.
     *
     * @signature typedef FormattedFile<Fastq, Output> SeqFileOut;
     *
     * @fn SeqFileOut#writeRecord
     *
     * @brief Write one @link FormattedFileRecordConcept @endlink into a @link
     *        SeqFileOut @endlink object.
     *
     * @signature void writeRecord(fileOut, meta, seq, qual);
     *
     * @param[in,out] fileOut The @link SeqFileOut @endlink object to write into.
     * @param[in] meta The @link StringConcept @endlink object where to read the
     *                 meta information from.
     * @param[in] seq The @link StringConcept @endlink object where to read the
     *                sequence information from.
     * @param[in] qual The @link StringConcept @endlink object where to read the
     *                 quality information from.
     *
     * @throw IOError On low-level I/O errors.
     * @throw ParseError On high-level file format errors.
     *
     * @fn SeqFileOut#writeRecords
     *
     * @brief Write many @link FormattedFileRecordConcept @endlink into a @link
     *        SeqFileOut @endlink object.
     *
     * @signature void writeRecords(fileOut, metas, seqs, quals);
     *
     * @see SeqFileOut#writeRecord
     */