Потеря входного потока в Apache Tika

Я получаю поток ввода из HttpRequest и использую тот же поток ввода для извлечения метаданных. как показано ниже.

ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(request);

--- more lines for the iteration and getting the stream ------
InputStream input = item.openStream();

Этот ввод передается парсеру, как показано ниже

public Map<String, String> extractMetadata(InputStream is) {

    Map<String,String> map = new HashMap<>();
    ContentHandler contentHandler = new BodyContentHandler(-1);
    Metadata metadata = new Metadata();


        Parser parser = new AutoDetectParser();
        ParseContext parseContext = new ParseContext();
        parseContext.set(Parser.class ,
                new ParserDecorator(parser));

    try {
        TikaInputStream tikaInputStream = TikaInputStream.get(is);
        parser.parse(tikaInputStream, contentHandler, metadata,parseContext);


    for (String name : metadata.names()) {
            map.put(name ,metadata.get(name));
        }

    } catch (IOException|SAXException|TikaException e) {
        map.put("ERROR","Error while retriving Metadata");
    }

    return  map;
}

Но когда я пытаюсь получить входной поток, это не то же самое, что если бы я не использовал тика для извлечения. Тика Грязный поток?

0 ответов

Другие вопросы по тегам