17

誰か私がそれを整理するのを手伝ってくれませんか?

このようにできます

   Tika tika = new Tika();
   tika.setMaxStringLength(10*1024*1024);

ただし、Tika を直接使用しない場合は、次のようになります。

ContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();

ParseContext ps = new ParseContext();
for (InputStream is : getInputStreams()) {
    parser.parse(is, textHandler, metadata, ps);
    is.close();
    System.out.println("Title: " + metadata.get("title"));
    System.out.println("Author: " + metadata.get("Author"));
}

と対話しないため、設定する方法はありませんWriteOutContentHandler。ところで-1、デフォルトではに設定されています。つまり、制限はありません。ただし、結果の制限は 100000 文字です。

/**
 * The maximum number of characters to write to the character stream.
 * Set to -1 for no limit.
 */
private final int writeLimit;

/**
 * Number of characters written so far.
 */
private int writeCount = 0;

private WriteOutContentHandler(Writer writer, int writeLimit) {
    this.writer = writer;
    this.writeLimit = writeLimit;
}

/**
 * Creates a content handler that writes character events to
 * the given writer.
 *
 * @param writer writer
 */
public WriteOutContentHandler(Writer writer) {
    this(writer, -1);
}
4

1 に答える 1

38

コンテンツ ハンドラに writelimit を持つコンストラクタがあることを見落としているに違いありません。

ContentHandler textHandler = new BodyContentHandler(int writeLimit);
于 2011-05-26T20:37:27.260 に答える