public class TextAndCSVParser extends AbstractEncodingDetectorParser
TikaCoreProperties.CONTENT_TYPE_USER_OVERRIDE
is set,
this parser tries to assess whether the file is a text file, csv or tsv.
If the detector detects regularity in column numbers and/or encapsulated cells,
this parser will apply the CSVParser
;
otherwise, it will treat the contents as text.
If there is a csv parse exception during detection, the parser sets
the HttpHeaders.CONTENT_TYPE
to MediaType.TEXT_PLAIN
and treats the file as MediaType.TEXT_PLAIN
.
If there is a csv parse exception during the parse, the parser
writes what's left of the stream as if it were text and then throws
an exception. As of this writing, the content that was buffered by the underlying
CSVParser
is lost.
Modifier and Type | Field and Description |
---|---|
static Property |
DELIMITER_PROPERTY |
static Property |
NUM_COLUMNS
If the file is detected as a csv/tsv, this is the number of columns in the first row.
|
static Property |
NUM_ROWS
If the file is detected as a csv/tsv, this is the number of rows if the file
is successfully read (e.g.
|
Constructor and Description |
---|
TextAndCSVParser() |
TextAndCSVParser(EncodingDetector encodingDetector) |
Modifier and Type | Method and Description |
---|---|
Set<MediaType> |
getSupportedTypes(ParseContext context)
Returns the set of media types supported by this parser when used
with the given parse context.
|
void |
parse(InputStream stream,
ContentHandler handler,
Metadata metadata,
ParseContext context)
Parses a document stream into a sequence of XHTML SAX events.
|
getEncodingDetector, getEncodingDetector, setEncodingDetector
parse
public static final Property DELIMITER_PROPERTY
public static final Property NUM_COLUMNS
public static final Property NUM_ROWS
public TextAndCSVParser()
public TextAndCSVParser(EncodingDetector encodingDetector)
public Set<MediaType> getSupportedTypes(ParseContext context)
Parser
context
- parse contextpublic void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException
Parser
The given document stream is consumed but not closed by this method. The responsibility to close the stream remains on the caller.
Information about the parsing context can be passed in the context parameter. See the parser implementations for the kinds of context information they expect.
stream
- the document stream (input)handler
- handler for the XHTML SAX events (output)metadata
- document metadata (input and output)context
- parse contextIOException
- if the document stream could not be readSAXException
- if the SAX events could not be processedTikaException
- if the document could not be parsedCopyright © 2007–2023 The Apache Software Foundation. All rights reserved.