javax.sound.midi.spi

## 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
    Constructor | Description
    --- | ---
    `MidiFileReader()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    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 inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### MidiFileReader

          public MidiFileReader()

  - ### Method Detail

    - #### 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
      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

    - #### 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

    - #### 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
      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

    - #### 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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.