MidiFileWriter (Java SE 9 & JDK 9 )
Keywords: javax.sound.midi.spi.MidiFileWriter class

Module java.desktop
Package javax.sound.midi.spi

## Class MidiFileWriter

- java.lang.Object
- - javax.sound.midi.spi.MidiFileWriter

-     public abstract class MidiFileWriter
      extends Object

  A `MidiFileWriter` supplies MIDI file-writing services. Classes that implement this interface can write one or more types of MIDI file from a `Sequence` object.
  Since:
    1.3

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MidiFileWriter​()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract int[]` | `getMidiFileTypes​()` | Obtains the set of MIDI file types for which file writing support is provided by this file writer.
    `abstract int[]` | `getMidiFileTypes​(Sequence sequence)` | Obtains the file types that this file writer can write from the sequence specified.
    `boolean` | `isFileTypeSupported​(int fileType)` | Indicates whether file writing support for the specified MIDI file type is provided by this file writer.
    `boolean` | `isFileTypeSupported​(int fileType, Sequence sequence)` | Indicates whether a MIDI file of the file type specified can be written from the sequence indicated.
    `abstract int` | `write​(Sequence in, int fileType, File out)` | Writes a stream of bytes representing a MIDI file of the file type indicated to the external file provided.
    `abstract int` | `write​(Sequence in, int fileType, OutputStream out)` | Writes a stream of bytes representing a MIDI file of the file type indicated to the output stream provided.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MidiFileWriter

          public MidiFileWriter​()

  - ### Method Detail

    - #### getMidiFileTypes

          public abstract int[] getMidiFileTypes​()

      Obtains the set of MIDI file types for which file writing support is provided by this file writer.
      Returns:
        array of file types. If no file types are supported, an array of length 0 is returned.

    - #### getMidiFileTypes

          public abstract int[] getMidiFileTypes​(Sequence sequence)

      Obtains the file types that this file writer can write from the sequence specified.
      Parameters:
        `sequence` - the sequence for which MIDI file type support is queried
      Returns:
        array of file types. If no file types are supported, returns an array of length 0.
      Throws:
        `NullPointerException` - if `sequence` is `null`

    - #### isFileTypeSupported

          public boolean isFileTypeSupported​(int fileType)

      Indicates whether file writing support for the specified MIDI file type is provided by this file writer.
      Parameters:
        `fileType` - the file type for which write capabilities are queried
      Returns:
        `true` if the file type is supported, otherwise `false`

    - #### isFileTypeSupported

          public boolean isFileTypeSupported​(int fileType,
                                             Sequence sequence)

      Indicates whether a MIDI file of the file type specified can be written from the sequence indicated.
      Parameters:
        `fileType` - the file type for which write capabilities are queried
        `sequence` - the sequence for which file writing support is queried
      Returns:
        `true` if the file type is supported for this sequence, otherwise `false`
      Throws:
        `NullPointerException` - if `sequence` is `null`

    - #### write

          public abstract int write​(Sequence in,
                                    int fileType,
                                    OutputStream out)
                             throws IOException

      Writes a stream of bytes representing a MIDI file of the file type indicated to the output stream provided.
      Parameters:
        `in` - sequence containing MIDI data to be written to the file
        `fileType` - type of the file to be written to the output stream
        `out` - stream to which the file data should be written
      Returns:
        the number of bytes written to the output stream
      Throws:
        `IOException` - if an I/O exception occurs
        `IllegalArgumentException` - if the file type is not supported by this file writer
        `NullPointerException` - if `in` or `out` are `null`
      See Also:
        `isFileTypeSupported(int, Sequence)`, `getMidiFileTypes(Sequence)`

    - #### write

          public abstract int write​(Sequence in,
                                    int fileType,
                                    File out)
                             throws IOException

      Writes a stream of bytes representing a MIDI file of the file type indicated to the external file provided.
      Parameters:
        `in` - sequence containing MIDI data to be written to the external file
        `fileType` - type of the file to be written to the external file
        `out` - external file to which the file data should be written
      Returns:
        the number of bytes written to the file
      Throws:
        `IOException` - if an I/O exception occurs
        `IllegalArgumentException` - if the file type is not supported by this file writer
        `NullPointerException` - if `in` or `out` are `null`
      See Also:
        `isFileTypeSupported(int, Sequence)`, `getMidiFileTypes(Sequence)`