AudioSystem class acts as the entry point to the sampled-audio
system resources. This class lets you query and access the mixers that are
installed on the system. AudioSystem includes a number of methods for
converting audio data between different formats, and for translating between
audio files and streams. It also provides a method for obtaining a
Line directly from the AudioSystem without dealing explicitly
with mixers.
Properties can be used to specify the default mixer for specific line types.
Both system properties and a properties file are considered. The
"sound.properties" properties file is read from an implementation-specific
location (typically it is the conf directory in the Java installation
directory). The optional "javax.sound.config.file" system property can be
used to specify the properties file that will be read as the initial
configuration. If a property exists both as a system property and in the
properties file, the system property takes precedence. If none is specified,
a suitable default is chosen among the available devices. The syntax of the
properties file is specified in
Properties.load. The following table
lists the available property keys and which methods consider them:
| Property Key | Interface | Affected Method(s) |
|---|---|---|
javax.sound.sampled.Clip
| Clip
| getLine(javax.sound.sampled.Line.Info), getClip()
|
javax.sound.sampled.Port
| Port
| getLine(javax.sound.sampled.Line.Info)
|
javax.sound.sampled.SourceDataLine
| SourceDataLine
| getLine(javax.sound.sampled.Line.Info), getSourceDataLine(javax.sound.sampled.AudioFormat)
|
javax.sound.sampled.TargetDataLine
| TargetDataLine
| getLine(javax.sound.sampled.Line.Info), getTargetDataLine(javax.sound.sampled.AudioFormat)
|
mixer provider
class. The mixer name is matched against the String returned by the
getName method of Mixer.Info. Either the class name, or the
mixer name may be omitted. If only the class name is specified, the trailing
hash mark is optional.
If the provider class is specified, and it can be successfully retrieved from
the installed providers, the list of Mixer.Info objects is retrieved
from the provider. Otherwise, or when these mixers do not provide a
subsequent match, the list is retrieved from getMixerInfo() to contain
all available Mixer.Info objects.
If a mixer name is specified, the resulting list of Mixer.Info
objects is searched: the first one with a matching name, and whose
Mixer provides the respective line interface, will be returned. If no
matching Mixer.Info object is found, or the mixer name is not
specified, the first mixer from the resulting list, which provides the
respective line interface, will be returned.
For example, the property javax.sound.sampled.Clip with a value
"com.sun.media.sound.MixerProvider#SunClip" will have the following
consequences when getLine is called requesting a Clip
instance: if the class com.sun.media.sound.MixerProvider exists in
the list of installed mixer providers, the first Clip from the first
mixer with name "SunClip" will be returned. If it cannot be found,
the first Clip from the first mixer of the specified provider will be
returned, regardless of name. If there is none, the first Clip from
the first Mixer with name "SunClip" in the list of all mixers
(as returned by getMixerInfo) will be returned, or, if not found, the
first Clip of the first Mixer that can be found in the list
of all mixers is returned. If that fails, too, an
IllegalArgumentException is thrown.
- Since:
- 1.3
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intAn integer that stands for an unknown numeric value. -
Method Summary
Modifier and TypeMethodDescriptionstatic AudioFileFormatgetAudioFileFormat(File file) Obtains the audio file format of the specifiedFile.static AudioFileFormatgetAudioFileFormat(InputStream stream) Obtains the audio file format of the provided input stream.static AudioFileFormatgetAudioFileFormat(URL url) Obtains the audio file format of the specifiedURL.static AudioFileFormat.Type[]Obtains the file types for which file writing support is provided by the system.static AudioFileFormat.Type[]getAudioFileTypes(AudioInputStream stream) Obtains the file types that the system can write from the audio input stream specified.static AudioInputStreamgetAudioInputStream(File file) Obtains an audio input stream from the providedFile.static AudioInputStreamgetAudioInputStream(InputStream stream) Obtains an audio input stream from the provided input stream.static AudioInputStreamgetAudioInputStream(URL url) Obtains an audio input stream from theURLprovided.static AudioInputStreamgetAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream) Obtains an audio input stream of the indicated encoding, by converting the provided audio input stream.static AudioInputStreamgetAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream) Obtains an audio input stream of the indicated format, by converting the provided audio input stream.static ClipgetClip()Obtains a clip that can be used for playing back an audio file or an audio stream.static ClipgetClip(Mixer.Info mixerInfo) Obtains a clip from the specified mixer that can be used for playing back an audio file or an audio stream.static LineObtains a line that matches the description in the specifiedLine.Infoobject.static MixergetMixer(Mixer.Info info) Obtains the requested audio mixer.static Mixer.Info[]Obtains an array of mixer info objects that represents the set of audio mixers that are currently installed on the system.static SourceDataLinegetSourceDataLine(AudioFormat format) Obtains a source data line that can be used for playing back audio data in the format specified by theAudioFormatobject.static SourceDataLinegetSourceDataLine(AudioFormat format, Mixer.Info mixerinfo) Obtains a source data line that can be used for playing back audio data in the format specified by theAudioFormatobject, provided by the mixer specified by theMixer.Infoobject.static Line.Info[]getSourceLineInfo(Line.Info info) Obtains information about all source lines of a particular type that are supported by the installed mixers.static TargetDataLinegetTargetDataLine(AudioFormat format) Obtains a target data line that can be used for recording audio data in the format specified by theAudioFormatobject.static TargetDataLinegetTargetDataLine(AudioFormat format, Mixer.Info mixerinfo) Obtains a target data line that can be used for recording audio data in the format specified by theAudioFormatobject, provided by the mixer specified by theMixer.Infoobject.static AudioFormat.Encoding[]getTargetEncodings(AudioFormat sourceFormat) Obtains the encodings that the system can obtain from an audio input stream with the specified format using the set of installed format converters.static AudioFormat.Encoding[]getTargetEncodings(AudioFormat.Encoding sourceEncoding) Obtains the encodings that the system can obtain from an audio input stream with the specified encoding using the set of installed format converters.static AudioFormat[]getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat) Obtains the formats that have a particular encoding and that the system can obtain from a stream of the specified format using the set of installed format converters.static Line.Info[]getTargetLineInfo(Line.Info info) Obtains information about all target lines of a particular type that are supported by the installed mixers.static booleanisConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat) Indicates whether an audio input stream of the specified encoding can be obtained from an audio input stream that has the specified format.static booleanisConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat) Indicates whether an audio input stream of a specified format can be obtained from an audio input stream of another specified format.static booleanisFileTypeSupported(AudioFileFormat.Type fileType) Indicates whether file writing support for the specified file type is provided by the system.static booleanisFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream) Indicates whether an audio file of the specified file type can be written from the indicated audio input stream.static booleanisLineSupported(Line.Info info) Indicates whether the system supports any lines that match the specifiedLine.Infoobject.static intwrite(AudioInputStream stream, AudioFileFormat.Type fileType, File out) Writes a stream of bytes representing an audio file of the specified file type to the external file provided.static intwrite(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) Writes a stream of bytes representing an audio file of the specified file type to the output stream provided.
-
Field Details
-
NOT_SPECIFIED
public static final int NOT_SPECIFIEDAn integer that stands for an unknown numeric value. This value is appropriate only for signed quantities that do not normally take negative values. Examples include file sizes, frame sizes, buffer sizes, and sample rates. A number of Java Sound constructors accept a value ofNOT_SPECIFIEDfor such parameters. Other methods may also accept or return this value, as documented.- See Also:
-
-
Method Details
-
getMixerInfo
Obtains an array of mixer info objects that represents the set of audio mixers that are currently installed on the system.- Returns:
- an array of info objects for the currently installed mixers. If no mixers are available on the system, an array of length 0 is returned.
- See Also:
-
getMixer
Obtains the requested audio mixer.- Parameters:
info- aMixer.Infoobject representing the desired mixer, ornullfor the system default mixer- Returns:
- the requested mixer
- Throws:
SecurityException- if the requested mixer is unavailable because of security restrictionsIllegalArgumentException- if the info object does not represent a mixer installed on the system- See Also:
-
getSourceLineInfo
Obtains information about all source lines of a particular type that are supported by the installed mixers.- Parameters:
info- aLine.Infoobject that specifies the kind of lines about which information is requested- Returns:
- an array of
Line.Infoobjects describing source lines matching the type requested. If no matching source lines are supported, an array of length 0 is returned. - See Also:
-
getTargetLineInfo
Obtains information about all target lines of a particular type that are supported by the installed mixers.- Parameters:
info- aLine.Infoobject that specifies the kind of lines about which information is requested- Returns:
- an array of
Line.Infoobjects describing target lines matching the type requested. If no matching target lines are supported, an array of length 0 is returned. - See Also:
-
isLineSupported
Indicates whether the system supports any lines that match the specifiedLine.Infoobject. A line is supported if any installed mixer supports it.- Parameters:
info- aLine.Infoobject describing the line for which support is queried- Returns:
trueif at least one matching line is supported, otherwisefalse- See Also:
-
getLine
Obtains a line that matches the description in the specifiedLine.Infoobject.If a
DataLineis requested, andinfois an instance ofDataLine.Infospecifying at least one fully qualified audio format, the last one will be used as the default format of the returnedDataLine.If system properties
javax.sound.sampled.Clip,javax.sound.sampled.Port,javax.sound.sampled.SourceDataLineandjavax.sound.sampled.TargetDataLineare defined or they are defined in the file "sound.properties", they are used to retrieve default lines. For details, refer to theclass description. If the respective property is not set, or the mixer requested in the property is not installed or does not provide the requested line, all installed mixers are queried for the requested line type. A Line will be returned from the first mixer providing the requested line type.- Parameters:
info- aLine.Infoobject describing the desired kind of line- Returns:
- a line of the requested kind
- Throws:
LineUnavailableException- if a matching line is not available due to resource restrictionsSecurityException- if a matching line is not available due to security restrictionsIllegalArgumentException- if the system does not support at least one line matching the specifiedLine.Infoobject through any installed mixer
-
getClip
Obtains a clip that can be used for playing back an audio file or an audio stream. The returned clip will be provided by the default system mixer, or, if not possible, by any other mixer installed in the system that supports aClipobject.The returned clip must be opened with the
open(AudioFormat)oropen(AudioInputStream)method.This is a high-level method that uses
getMixerandgetLineinternally.If the system property
javax.sound.sampled.Clipis defined or it is defined in the file "sound.properties", it is used to retrieve the default clip. For details, refer to theclass description.- Returns:
- the desired clip object
- Throws:
LineUnavailableException- if a clip object is not available due to resource restrictionsSecurityException- if a clip object is not available due to security restrictionsIllegalArgumentException- if the system does not support at least one clip instance through any installed mixer- Since:
- 1.5
- See Also:
-
getClip
Obtains a clip from the specified mixer that can be used for playing back an audio file or an audio stream.The returned clip must be opened with the
open(AudioFormat)oropen(AudioInputStream)method.This is a high-level method that uses
getMixerandgetLineinternally.- Parameters:
mixerInfo- aMixer.Infoobject representing the desired mixer, ornullfor the system default mixer- Returns:
- a clip object from the specified mixer
- Throws:
LineUnavailableException- if a clip is not available from this mixer due to resource restrictionsSecurityException- if a clip is not available from this mixer due to security restrictionsIllegalArgumentException- if the system does not support at least one clip through the specified mixer- Since:
- 1.5
- See Also:
-
getSourceDataLine
Obtains a source data line that can be used for playing back audio data in the format specified by theAudioFormatobject. The returned line will be provided by the default system mixer, or, if not possible, by any other mixer installed in the system that supports a matchingSourceDataLineobject.The returned line should be opened with the
open(AudioFormat)oropen(AudioFormat, int)method.This is a high-level method that uses
getMixerandgetLineinternally.The returned
SourceDataLine's default audio format will be initialized withformat.If the system property
javax.sound.sampled.SourceDataLineis defined or it is defined in the file "sound.properties", it is used to retrieve the default source data line. For details, refer to theclass description.- Parameters:
format- anAudioFormatobject specifying the supported audio format of the returned line, ornullfor any audio format- Returns:
- the desired
SourceDataLineobject - Throws:
LineUnavailableException- if a matching source data line is not available due to resource restrictionsSecurityException- if a matching source data line is not available due to security restrictionsIllegalArgumentException- if the system does not support at least one source data line supporting the specified audio format through any installed mixer- Since:
- 1.5
- See Also:
-
getSourceDataLine
public static SourceDataLine getSourceDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException Obtains a source data line that can be used for playing back audio data in the format specified by theAudioFormatobject, provided by the mixer specified by theMixer.Infoobject.The returned line should be opened with the
open(AudioFormat)oropen(AudioFormat, int)method.This is a high-level method that uses
getMixerandgetLineinternally.The returned
SourceDataLine's default audio format will be initialized withformat.- Parameters:
format- anAudioFormatobject specifying the supported audio format of the returned line, ornullfor any audio formatmixerinfo- aMixer.Infoobject representing the desired mixer, ornullfor the system default mixer- Returns:
- the desired
SourceDataLineobject - Throws:
LineUnavailableException- if a matching source data line is not available from the specified mixer due to resource restrictionsSecurityException- if a matching source data line is not available from the specified mixer due to security restrictionsIllegalArgumentException- if the specified mixer does not support at least one source data line supporting the specified audio format- Since:
- 1.5
- See Also:
-
getTargetDataLine
Obtains a target data line that can be used for recording audio data in the format specified by theAudioFormatobject. The returned line will be provided by the default system mixer, or, if not possible, by any other mixer installed in the system that supports a matchingTargetDataLineobject.The returned line should be opened with the
open(AudioFormat)oropen(AudioFormat, int)method.This is a high-level method that uses
getMixerandgetLineinternally.The returned
TargetDataLine's default audio format will be initialized withformat.If the system property
javax.sound.sampled.TargetDataLineis defined or it is defined in the file "sound.properties", it is used to retrieve the default target data line. For details, refer to theclass description.- Parameters:
format- anAudioFormatobject specifying the supported audio format of the returned line, ornullfor any audio format- Returns:
- the desired
TargetDataLineobject - Throws:
LineUnavailableException- if a matching target data line is not available due to resource restrictionsSecurityException- if a matching target data line is not available due to security restrictionsIllegalArgumentException- if the system does not support at least one target data line supporting the specified audio format through any installed mixer- Since:
- 1.5
- See Also:
-
getTargetDataLine
public static TargetDataLine getTargetDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException Obtains a target data line that can be used for recording audio data in the format specified by theAudioFormatobject, provided by the mixer specified by theMixer.Infoobject.The returned line should be opened with the
open(AudioFormat)oropen(AudioFormat, int)method.This is a high-level method that uses
getMixerandgetLineinternally.The returned
TargetDataLine's default audio format will be initialized withformat.- Parameters:
format- anAudioFormatobject specifying the supported audio format of the returned line, ornullfor any audio formatmixerinfo- aMixer.Infoobject representing the desired mixer, ornullfor the system default mixer- Returns:
- the desired
TargetDataLineobject - Throws:
LineUnavailableException- if a matching target data line is not available from the specified mixer due to resource restrictionsSecurityException- if a matching target data line is not available from the specified mixer due to security restrictionsIllegalArgumentException- if the specified mixer does not support at least one target data line supporting the specified audio format- Since:
- 1.5
- See Also:
-
getTargetEncodings
Obtains the encodings that the system can obtain from an audio input stream with the specified encoding using the set of installed format converters.- Parameters:
sourceEncoding- the encoding for which conversion support is queried- Returns:
- array of encodings. If
sourceEncodingis not supported, an array of length 0 is returned. Otherwise, the array will have a length of at least 1, representingsourceEncoding(no conversion). - Throws:
NullPointerException- ifsourceEncodingisnull
-
getTargetEncodings
Obtains the encodings that the system can obtain from an audio input stream with the specified format using the set of installed format converters.- Parameters:
sourceFormat- the audio format for which conversion is queried- Returns:
- array of encodings. If
sourceFormatis not supported, an array of length 0 is returned. Otherwise, the array will have a length of at least 1, representing the encoding ofsourceFormat(no conversion). - Throws:
NullPointerException- ifsourceFormatisnull
-
isConversionSupported
public static boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat) Indicates whether an audio input stream of the specified encoding can be obtained from an audio input stream that has the specified format.- Parameters:
targetEncoding- the desired encoding after conversionsourceFormat- the audio format before conversion- Returns:
trueif the conversion is supported, otherwisefalse- Throws:
NullPointerException- iftargetEncodingorsourceFormatarenull
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream) Obtains an audio input stream of the indicated encoding, by converting the provided audio input stream.- Parameters:
targetEncoding- the desired encoding after conversionsourceStream- the stream to be converted- Returns:
- an audio input stream of the indicated encoding
- Throws:
IllegalArgumentException- if the conversion is not supportedNullPointerException- iftargetEncodingorsourceStreamarenull- See Also:
-
getTargetFormats
public static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat) Obtains the formats that have a particular encoding and that the system can obtain from a stream of the specified format using the set of installed format converters.- Parameters:
targetEncoding- the desired encoding after conversionsourceFormat- the audio format before conversion- Returns:
- array of formats. If no formats of the specified encoding are supported, an array of length 0 is returned.
- Throws:
NullPointerException- iftargetEncodingorsourceFormatarenull
-
isConversionSupported
Indicates whether an audio input stream of a specified format can be obtained from an audio input stream of another specified format.- Parameters:
targetFormat- the desired audio format after conversionsourceFormat- the audio format before conversion- Returns:
trueif the conversion is supported, otherwisefalse- Throws:
NullPointerException- iftargetFormatorsourceFormatarenull
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream) Obtains an audio input stream of the indicated format, by converting the provided audio input stream.- Parameters:
targetFormat- the desired audio format after conversionsourceStream- the stream to be converted- Returns:
- an audio input stream of the indicated format
- Throws:
IllegalArgumentException- if the conversion is not supportedNullPointerException- iftargetFormatorsourceStreamarenull- See Also:
-
getAudioFileFormat
public static AudioFileFormat getAudioFileFormat(InputStream stream) throws UnsupportedAudioFileException, IOException Obtains the audio file format of the provided input stream. The stream must point to valid audio file data. The implementation of this method may require multiple parsers to examine the stream to determine whether they support it. These parsers must be able to mark the stream, read enough data to determine whether they support the stream, and reset the stream's read pointer to its original position. If the input stream does not support these operations, this method may fail with anIOException.- Parameters:
stream- the input stream from which file format information should be extracted- Returns:
- an
AudioFileFormatobject describing the stream's audio file format - Throws:
UnsupportedAudioFileException- if the stream does not point to valid audio file data recognized by the systemIOException- if an input/output exception occursNullPointerException- ifstreamisnull- See Also:
-
getAudioFileFormat
public static AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException Obtains the audio file format of the specifiedURL. TheURLmust point to valid audio file data.- Parameters:
url- theURLfrom which file format information should be extracted- Returns:
- an
AudioFileFormatobject describing the audio file format - Throws:
UnsupportedAudioFileException- if theURLdoes not point to valid audio file data recognized by the systemIOException- if an input/output exception occursNullPointerException- ifurlisnull
-
getAudioFileFormat
public static AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException Obtains the audio file format of the specifiedFile. TheFilemust point to valid audio file data.- Parameters:
file- theFilefrom which file format information should be extracted- Returns:
- an
AudioFileFormatobject describing the audio file format - Throws:
UnsupportedAudioFileException- if theFiledoes not point to valid audio file data recognized by the systemIOException- if an I/O exception occursNullPointerException- iffileisnull
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(InputStream stream) throws UnsupportedAudioFileException, IOException Obtains an audio input stream from the provided input stream. The stream must point to valid audio file data. The implementation of this method may require multiple parsers to examine the stream to determine whether they support it. These parsers must be able to mark the stream, read enough data to determine whether they support the stream, and reset the stream's read pointer to its original position. If the input stream does not support these operation, this method may fail with anIOException.- Parameters:
stream- the input stream from which theAudioInputStreamshould be constructed- Returns:
- an
AudioInputStreamobject based on the audio file data contained in the input stream - Throws:
UnsupportedAudioFileException- if the stream does not point to valid audio file data recognized by the systemIOException- if an I/O exception occursNullPointerException- ifstreamisnull- See Also:
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException Obtains an audio input stream from theURLprovided. TheURLmust point to valid audio file data.- Parameters:
url- theURLfor which theAudioInputStreamshould be constructed- Returns:
- an
AudioInputStreamobject based on the audio file data pointed to by theURL - Throws:
UnsupportedAudioFileException- if theURLdoes not point to valid audio file data recognized by the systemIOException- if an I/O exception occursNullPointerException- ifurlisnull
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException Obtains an audio input stream from the providedFile. TheFilemust point to valid audio file data.- Parameters:
file- theFilefor which theAudioInputStreamshould be constructed- Returns:
- an
AudioInputStreamobject based on the audio file data pointed to by theFile - Throws:
UnsupportedAudioFileException- if theFiledoes not point to valid audio file data recognized by the systemIOException- if an I/O exception occursNullPointerException- iffileisnull
-
getAudioFileTypes
Obtains the file types for which file writing support is provided by the system.- Returns:
- array of unique file types. If no file types are supported, an array of length 0 is returned.
-
isFileTypeSupported
Indicates whether file writing support for the specified file type is provided by the system.- Parameters:
fileType- the file type for which write capabilities are queried- Returns:
trueif the file type is supported, otherwisefalse- Throws:
NullPointerException- iffileTypeisnull
-
getAudioFileTypes
Obtains the file types that the system 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- ifstreamisnull
-
isFileTypeSupported
Indicates whether an audio file of the specified file type can be written from the indicated audio input stream.- Parameters:
fileType- the file type for which write capabilities are queriedstream- the stream for which file-writing support is queried- Returns:
trueif the file type is supported for this audio input stream, otherwisefalse- Throws:
NullPointerException- iffileTypeorstreamarenull
-
write
public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException Writes a stream of bytes representing an audio file of the specified file type to the output stream provided. Some file types require that the length be written into the file header; such files cannot be written from start to finish unless the length is known in advance. An attempt to write a file of such a type will fail with anIOExceptionif the length in the audio file type isAudioSystem.NOT_SPECIFIED.- Parameters:
stream- the audio input stream containing audio data to be written to the filefileType- the kind of audio file to writeout- the stream to which the file data should be written- Returns:
- the number of bytes written to the output stream
- Throws:
IOException- if an input/output exception occursIllegalArgumentException- if the file type is not supported by the systemNullPointerException- ifstreamorfileTypeoroutarenull- See Also:
-
write
public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, File out) throws IOException Writes a stream of bytes representing an audio file of the specified file type to the external file provided.- Parameters:
stream- the audio input stream containing audio data to be written to the filefileType- the kind of audio file to writeout- the 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 occursIllegalArgumentException- if the file type is not supported by the systemNullPointerException- ifstreamorfileTypeoroutarenull- See Also:
-