Class TextAndCSVParser

  • All Implemented Interfaces:
    Serializable, Parser

    public class TextAndCSVParser
    extends AbstractEncodingDetectorParser
    Unless the TikaCoreProperties.CONTENT_TYPE_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.

    See Also:
    Serialized Form
    • Field Detail

      • DELIMITER_PROPERTY

        public static final Property DELIMITER_PROPERTY
    • Constructor Detail

      • TextAndCSVParser

        public TextAndCSVParser()
      • TextAndCSVParser

        public TextAndCSVParser​(EncodingDetector encodingDetector)
    • Method Detail

      • getSupportedTypes

        public Set<MediaType> getSupportedTypes​(ParseContext context)
        Description copied from interface: Parser
        Returns the set of media types supported by this parser when used with the given parse context.
        Parameters:
        context - parse context
        Returns:
        immutable set of media types
      • parse

        public void parse​(InputStream stream,
                          ContentHandler handler,
                          Metadata metadata,
                          ParseContext context)
                   throws IOException,
                          SAXException,
                          TikaException
        Description copied from interface: Parser
        Parses a document stream into a sequence of XHTML SAX events. Fills in related document metadata in the given metadata object.

        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.

        Parameters:
        stream - the document stream (input)
        handler - handler for the XHTML SAX events (output)
        metadata - document metadata (input and output)
        context - parse context
        Throws:
        IOException - if the document stream could not be read
        SAXException - if the SAX events could not be processed
        TikaException - if the document could not be parsed