public static String getTextOf(String xsl) throws Exception {
DocXHandler docxh1 = new DocXHandler(ACE.getInputFilePath());
InputStream inputDocumentXMLStream = docxh1.getInputDocumentXMLZERO();
return new Cache().getXSLOutput(inputDocumentXMLStream, xsl);
}
上述方法將被調用超過100次,並帶有不同的xsl參數。現在每次InputStream的inputDocumentXMLStream被賦值(是超過100次)。由於我試圖重構這個代碼,因爲只有一次的InputStream將被分配value.My代碼變成現在這個樣子這種方式,通過改變inputDocumentXMLStream作爲全球房地產爲什麼我無法重用InputStream?
public static String getTextOf(String xsl) throws Exception {
return new Cache().getXSLOutput(inputDocumentXMLStream, xsl);
}
。第一次我得到正確的結果但第二次我得到以下錯誤,
Unexpected end of ZLIB input stream
所以電話給我如何再讀一遍?
@Kate:它應該是有幫助的。我明白,與編程一次又一次讀取相同的文件相比,它在編程方面的額外努力。但一旦完成,我認爲它好多了。 –
@Kate建議不要將'InputStream'保存在Map中(這是一個非常糟糕的方法)。您應該打開文件(使用'InputStream'或其他),解析文件以構建文件的內存中表示,並且有方法來訪問和導航整個結構。 –
@LuiggiMendoza:我已經提到過,我不建議使用任何特定的java對象。我試圖分享一次解析文件並重用解析對象的想法。沒有其他的。希望澄清。 –