Detects the content type of the given input document. Returns
application/octet-stream
if the type of the document can not be detected.
If the document input stream is not available, then the first argument may be null
. Otherwise the detector may read bytes from the start of the stream to help in type detection. The given stream is guaranteed to support the {@link InputStream#markSupported() mark feature} and the detectoris expected to {@link InputStream#mark(int) mark} the stream beforereading any bytes from it, and to {@link InputStream#reset() reset}the stream before returning. The stream must not be closed by the detector.
The given input metadata is only read, not modified, by the detector.
@param input document input stream, or null
@param metadata input metadata for the document
@return detected media type, or application/octet-stream
@throws IOException if the document input stream could not be read