MidiFileReader (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.sound.midi.spi, class: MidiFileReader
Keywords: javax.sound.midi.spi.MidiFileReader class

# Class MidiFileReader

java.lang.Object
javax.sound.midi.spi.MidiFileReader

public abstract class MidiFileReader extends Object
A `MidiFileReader` supplies MIDI file-reading services. Classes implementing this interface can parse the format information from one or more types of MIDI file, and can produce a `Sequence` object from files of these types.

Since:
  1.3

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `MidiFileReader()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract MidiFileFormat`
  `getMidiFileFormat(File file)`
  Obtains the MIDI file format of the `File` provided.
  `abstract MidiFileFormat`
  `getMidiFileFormat(InputStream stream)`
  Obtains the MIDI file format of the input stream provided.
  `abstract MidiFileFormat`
  `getMidiFileFormat(URL url)`
  Obtains the MIDI file format of the `URL` provided.
  `abstract Sequence`
  `getSequence(File file)`
  Obtains a MIDI sequence from the `File` provided.
  `abstract Sequence`
  `getSequence(InputStream stream)`
  Obtains a MIDI sequence from the input stream provided.
  `abstract Sequence`
  `getSequence(URL url)`
  Obtains a MIDI sequence from the `URL` provided.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### MidiFileReader

    protected MidiFileReader()
    Constructor for subclasses to call.

- ## Method Details

  - ### getMidiFileFormat

    public abstract MidiFileFormat getMidiFileFormat(InputStream stream) throws InvalidMidiDataException, IOException
    Obtains the MIDI file format of the input stream provided. The stream must point to valid MIDI file data. In general, MIDI file readers may need to read some data from the stream before determining whether they support it. These parsers must be able to mark the stream, read enough data to determine whether they support the stream, and, if not, reset the stream's read pointer to its original position. If the input stream does not support this, this method may fail with an `IOException`.
    Parameters:
      `stream` - the input stream from which file format information should be extracted
    Returns:
      a `MidiFileFormat` object describing the MIDI file format
    Throws:
      `InvalidMidiDataException` - if the stream does not point to valid MIDI file data recognized by the system
      `IOException` - if an I/O exception occurs
      `NullPointerException` - if `stream` is `null`
    See Also:
      - `InputStream.markSupported()`
      - `InputStream.mark(int)`

  - ### getMidiFileFormat

    public abstract MidiFileFormat getMidiFileFormat(URL url) throws InvalidMidiDataException, IOException
    Obtains the MIDI file format of the `URL` provided. The `URL` must point to valid MIDI file data.
    Parameters:
      `url` - the `URL` from which file format information should be extracted
    Returns:
      a `MidiFileFormat` object describing the MIDI file format
    Throws:
      `InvalidMidiDataException` - if the `URL` does not point to valid MIDI file data recognized by the system
      `IOException` - if an I/O exception occurs
      `NullPointerException` - if `url` is `null`

  - ### getMidiFileFormat

    public abstract MidiFileFormat getMidiFileFormat(File file) throws InvalidMidiDataException, IOException
    Obtains the MIDI file format of the `File` provided. The `File` must point to valid MIDI file data.
    Parameters:
      `file` - the `File` from which file format information should be extracted
    Returns:
      a `MidiFileFormat` object describing the MIDI file format
    Throws:
      `InvalidMidiDataException` - if the `File` does not point to valid MIDI file data recognized by the system
      `IOException` - if an I/O exception occurs
      `NullPointerException` - if `file` is `null`

  - ### getSequence

    public abstract Sequence getSequence(InputStream stream) throws InvalidMidiDataException, IOException
    Obtains a MIDI sequence from the input stream provided. The stream must point to valid MIDI file data. In general, MIDI file readers may need to read some data from the stream before determining whether they support it. These parsers must be able to mark the stream, read enough data to determine whether they support the stream, and, if not, reset the stream's read pointer to its original position. If the input stream does not support this, this method may fail with an `IOException`.
    Parameters:
      `stream` - the input stream from which the `Sequence` should be constructed
    Returns:
      a `Sequence` object based on the MIDI file data contained in the input stream
    Throws:
      `InvalidMidiDataException` - if the stream does not point to valid MIDI file data recognized by the system
      `IOException` - if an I/O exception occurs
      `NullPointerException` - if `stream` is `null`
    See Also:
      - `InputStream.markSupported()`
      - `InputStream.mark(int)`

  - ### getSequence

    public abstract Sequence getSequence(URL url) throws InvalidMidiDataException, IOException
    Obtains a MIDI sequence from the `URL` provided. The `URL` must point to valid MIDI file data.
    Parameters:
      `url` - the `URL` for which the `Sequence` should be constructed
    Returns:
      a `Sequence` object based on the MIDI file data pointed to by the `URL`
    Throws:
      `InvalidMidiDataException` - if the `URL` does not point to valid MIDI file data recognized by the system
      `IOException` - if an I/O exception occurs
      `NullPointerException` - if `url` is `null`

  - ### getSequence

    public abstract Sequence getSequence(File file) throws InvalidMidiDataException, IOException
    Obtains a MIDI sequence from the `File` provided. The `File` must point to valid MIDI file data.
    Parameters:
      `file` - the `File` from which the `Sequence` should be constructed
    Returns:
      a `Sequence` object based on the MIDI file data pointed to by the `File`
    Throws:
      `InvalidMidiDataException` - if the `File` does not point to valid MIDI file data recognized by the system
      `IOException` - if an I/O exception occurs
      `NullPointerException` - if `file` is `null`