2011-05-26 11 views
13

क्या कोई इसे हल करने में मेरी मदद कर सकता है?दस्तावेजों को पार्स करते समय अपाचे टिका और चरित्र सीमा

यह इस

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

की तरह किया जा सकता है लेकिन आप टीका सीधे का उपयोग नहीं करते हैं, इस तरह:

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); 
} 

उत्तर

31

आपने यह अनदेखा कर दिया होगा कि सामग्री हैंडलर में लेखांकन के साथ निर्माता है।

ContentHandler textHandler = new BodyContentHandler(int writeLimit); 
+0

Omg मैं – lisak

+1

#selfie .... :-)! – bknopper

+4

ध्यान दें कि -1 असीमित वर्ण है इस तरह के एक कर रहा हूँ ..... धन्यवाद दोस्त –

संबंधित मुद्दे