public final class MimeTypes extends Object implements Detector, Serializable
The MIME type detection methods that take an InputStream
as
an argument will never reads more than getMinLength()
bytes
from the stream. Also the given stream is never
closed
, marked
,
or reset
by the methods. Thus a client can
use the mark feature
of the stream
(if available) to restore the stream back to the state it was before type
detection if it wants to process the stream based on the detected type.
Modifier and Type | Field and Description |
---|---|
static String |
OCTET_STREAM
Name of the
root type, application/octet-stream. |
static String |
PLAIN_TEXT
Name of the
text type, text/plain. |
static String |
XML
Name of the
xml type, application/xml. |
Constructor and Description |
---|
MimeTypes() |
Modifier and Type | Method and Description |
---|---|
void |
addPattern(MimeType type,
String pattern)
Adds a file name pattern for the given media type.
|
void |
addPattern(MimeType type,
String pattern,
boolean isRegex)
Adds a file name pattern for the given media type.
|
MediaType |
detect(InputStream input,
Metadata metadata)
Automatically detects the MIME type of a document based on magic
markers in the stream prefix and any given metadata hints.
|
MimeType |
forName(String name)
Returns the registered media type with the given name (or alias).
|
static MimeTypes |
getDefaultMimeTypes()
Get the default MimeTypes.
|
static MimeTypes |
getDefaultMimeTypes(ClassLoader classLoader)
Get the default MimeTypes.
|
MediaTypeRegistry |
getMediaTypeRegistry() |
MimeType |
getMimeType(File file)
Deprecated.
Use
Tika.detect(File) instead |
MimeType |
getMimeType(String name)
Deprecated.
Use
Tika.detect(String) instead |
int |
getMinLength()
Return the minimum length of data to provide to analyzing methods based
on the document's content in order to check all the known MimeTypes.
|
MimeType |
getRegisteredMimeType(String name)
Returns the registered, normalised media type with the given name (or alias).
|
void |
setSuperType(MimeType type,
MediaType parent) |
public static final String OCTET_STREAM
root
type, application/octet-stream.public static final String PLAIN_TEXT
text
type, text/plain.public static final String XML
xml
type, application/xml.public static MimeTypes getDefaultMimeTypes()
public static MimeTypes getDefaultMimeTypes(ClassLoader classLoader)
classLoader
- to use, if not the defaultpublic MimeType getMimeType(String name)
Tika.detect(String)
insteadname
- of the document to analyze.public MimeType getMimeType(File file) throws MimeTypeException, IOException
Tika.detect(File)
insteadfile
- file to analyzeMimeTypeException
- if the type can't be detectedIOException
- if the file can't be readpublic MimeType forName(String name) throws MimeTypeException
name
- media type name (case-insensitive)MimeTypeException
- if the given media type name is invalidpublic MimeType getRegisteredMimeType(String name) throws MimeTypeException
Unlike Also, unlike forName(String)
, this function will not create a
new MimeType and register it. Instead, null
will be returned if
there is no definition available for the given name.
forName(String)
, this function may return a
mime type that has fewer parameters than were included in the supplied name.
If the registered mime type has parameters (e.g.
application/dita+xml;format=map
), then those will be maintained.
However, if the supplied name has paramenters that the registered mime
type does not (e.g. application/xml; charset=UTF-8
as a name,
compared to just application/xml
for the type in the registry),
then those parameters will not be included in the returned type.
name
- media type name (case-insensitive)MimeTypeException
- if the given media type name is invalidpublic void addPattern(MimeType type, String pattern) throws MimeTypeException
type
- media typepattern
- file name patternMimeTypeException
- if the pattern conflicts with existing onespublic void addPattern(MimeType type, String pattern, boolean isRegex) throws MimeTypeException
isRegex
parameter. If the value
is set to true, then a JDK standard regex is assumed, otherwise the
freedesktop glob type is assumed.type
- media typepattern
- file name patternisRegex
- set to true if JDK std regexs are desired, otherwise set to
false.MimeTypeException
- if the pattern conflicts with existing ones.public MediaTypeRegistry getMediaTypeRegistry()
public int getMinLength()
getMimeType(byte[])
public MediaType detect(InputStream input, Metadata metadata) throws IOException
The given stream is expected to support marks, so that this method can reset the stream to the position it was in before this method was called.
detect
in interface Detector
input
- document stream, or null
metadata
- metadata hintsIOException
- if the document stream could not be readCopyright © 2007–2023 The Apache Software Foundation. All rights reserved.