我需要解析的對象,我需要換我收到成PushbackReader讀者。我是否需要關閉PushbackReader在任何情況下,或者是足夠安全離開它打開,因爲它是潛在的讀者(我沒有打開),其我是否需要關閉java.io包的Reader裝飾器?
隨着
public static MyObject parse(Reader reader) throws IOException, ParseException {
PushbackReader pReader = new PushbackReader(reader, PUSHBACK_SIZE);
try {
return parseMyObject(pReader);
} finally {
pReader.close();
}
}
或者是足夠安全只寫了以下內容:
public static MyObject parse(Reader reader) throws IOException, ParseException {
return parseMyObject(new PushbackReader(reader, PUSHBACK_SIZE));
}
有關的信息,這裏就是我打電話給我的解析器:
BufferedReader reader = new BufferedReader(...);
try {
while (...) {
list.add(MyObjectParser.parse(reader));
}
} catch (IOException e) {
throw new RuntimeException("Could not read the stream", e);
} catch (ParseException e) {
throw new ParseRuntimeException("Could not parse the stream", e);
} finally {
// No need for null check.
reader.close();
}
確實parseMyObject需要一個PushBackReader,還是隻需要一個普通的Reader。如果解析只是一個正常的讀者,推回閱讀器沒有效果 – sbridges 2011-04-29 13:39:43
_since它是底層的讀者(我沒有打開)that? – 2013-05-03 15:31:01