Java™ Platform
Standard Ed. 6

javax.sound.midi.spi
Class MidiFileReader

java.lang.Object
  extended by 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
MidiFileReader()
           
 
Method Summary
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

Java™ Platform
Standard Ed. 6

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.