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

# Class AudioFileWriter

java.lang.Object
javax.sound.sampled.spi.AudioFileWriter

public abstract class AudioFileWriter extends Object
Provider for audio file writing services. Classes providing concrete implementations can write one or more types of audio file from an audio stream.

Since:
  1.3

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract AudioFileFormat.Type[]`
  `getAudioFileTypes()`
  Obtains the file types for which file writing support is provided by this audio file writer.
  `abstract AudioFileFormat.Type[]`
  `getAudioFileTypes(AudioInputStream stream)`
  Obtains the file types that this audio file writer can write from the audio input stream specified.
  `boolean`
  `isFileTypeSupported(AudioFileFormat.Type fileType)`
  Indicates whether file writing support for the specified file type is provided by this audio file writer.
  `boolean`
  `isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)`
  Indicates whether an audio file of the type specified can be written from the audio input stream indicated.
  `abstract int`
  `write(AudioInputStream stream, AudioFileFormat.Type fileType, File out)`
  Writes a stream of bytes representing an audio file of the file format indicated to the external file provided.
  `abstract int`
  `write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out)`
  Writes a stream of bytes representing an audio file of the file type indicated to the output stream 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

  - ### AudioFileWriter

    protected AudioFileWriter()
    Constructor for subclasses to call.

- ## Method Details

  - ### getAudioFileTypes

    public abstract AudioFileFormat.Type[] getAudioFileTypes()
    Obtains the file types for which file writing support is provided by this audio file writer.
    Returns:
      array of file types. If no file types are supported, an array of length 0 is returned.

  - ### isFileTypeSupported

    public boolean isFileTypeSupported(AudioFileFormat.Type fileType)
    Indicates whether file writing support for the specified file type is provided by this audio file writer.
    Parameters:
      `fileType` - the file type for which write capabilities are queried
    Returns:
      `true` if the file type is supported, otherwise `false`
    Throws:
      `NullPointerException` - if `fileType` is `null`

  - ### getAudioFileTypes

    public abstract AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
    Obtains the file types that this audio file writer can write from the audio input stream specified.
    Parameters:
      `stream` - the audio input stream for which audio file type support is queried
    Returns:
      array of file types. If no file types are supported, an array of length 0 is returned.
    Throws:
      `NullPointerException` - if `stream` is `null`

  - ### isFileTypeSupported

    public boolean isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
    Indicates whether an audio file of the type specified can be written from the audio input stream indicated.
    Parameters:
      `fileType` - file type for which write capabilities are queried
      `stream` - for which file writing support is queried
    Returns:
      `true` if the file type is supported for this audio input stream, otherwise `false`
    Throws:
      `NullPointerException` - if `fileType` or `stream` are `null`

  - ### write

    public abstract int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException
    Writes a stream of bytes representing an audio file of the file type indicated to the output stream provided. Some file types require that the length be written into the file header, and cannot be written from start to finish unless the length is known in advance. An attempt to write such a file type will fail with an `IOException` if the length in the audio file format is `AudioSystem.NOT_SPECIFIED`.
    Parameters:
      `stream` - the audio input stream containing audio data to be written to the output stream
      `fileType` - file type 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 the system
      `NullPointerException` - if `stream` or `fileType` or `out` are `null`
    See Also:
      - `isFileTypeSupported(Type, AudioInputStream)`
      - `getAudioFileTypes()`

  - ### write

    public abstract int write(AudioInputStream stream, AudioFileFormat.Type fileType, File out) throws IOException
    Writes a stream of bytes representing an audio file of the file format indicated to the external file provided.
    Parameters:
      `stream` - the audio input stream containing audio data to be written to the file
      `fileType` - file type to be written to the 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 format is not supported by the system
      `NullPointerException` - if `stream` or `fileType` or `out` are `null`
    See Also:
      - `isFileTypeSupported(Type, AudioInputStream)`
      - `getAudioFileTypes()`