Я пытаюсь проанализировать простой текстовый файл, используя Tika, но получаю непоследовательность
поведение.
Более конкретно, я определил простой обработчик следующим образом:
public class MyHandler extends DefaultHandler
{
@Override
public void characters(char ch[], int start, int length) throws SAXException
{
System.out.println(new String(ch));
}
}
Затем я анализирую файл (" myfile.txt ") следующим образом:
Tika tika = new Tika();
InputStream is = new FileInputStream("myfile.txt");
Metadata metadata = new Metadata();
ContentHandler handler = new MyHandler();
Parser parser = new TXTParser();
ParseContext context = new ParseContext();
String mimeType = tika.detect(is);
metadata.set(HttpHeaders.CONTENT_TYPE, mimeType);
tikaParser.parse(is, handler, metadata, context);
Я ожидаю, что весь текст в файле будет напечатан на экране, но
малая часть в итоге нет. В частности, обратный вызов символов ()
продолжает читать 4096 символов для каждого обратного вызова, но в конце концов, по-видимому,
пропускает последние 5 083 символов этого конкретного файла (что несколько
Мегабайт), так что даже пропускается последний обратный вызов.
Кроме того, тестирование другого небольшого файла длиной около 5000 символов,
кажется, что обратного вызова не происходит!
Тип MIME правильно определяется как text / plain в обоих случаях.
Есть идеи?
Спасибо!