Je lis un fichier local à l'aide d'un BufferedReader enveloppé dans un FileReader :
BufferedReader reader = new BufferedReader(new FileReader(fileName));
// read the file
// (error handling snipped)
reader.close();
Dois-je close()
le site FileReader
ou le wrapper s'en chargera-t-il ? J'ai vu du code où les gens font quelque chose comme ça :
FileReader fReader = new FileReader(fileName);
BufferedReader bReader = new BufferedReader(fReader);
// read the file
// (error handling snipped)
bReader.close();
fReader.close();
Cette méthode est appelée depuis une servlet, et je voudrais m'assurer que je ne laisse pas de handles ouverts.
4 votes
Tu sais, tu peux juste lire la source pour ce genre d'info. Tout est là, dans src.zip, dans le répertoire d'installation du JDK, ou vous pouvez le lire en ligne, par exemple à l'adresse suivante docjar.com/html/api/java/io/BufferedReader.java.html
57 votes
Dire à quelqu'un de lire la source est pire que de lui dire "RTFM !". Et que se passe-t-il si la source a un bug ; implicitement, nous voulons savoir ce que le correct comportement est ?
1 votes
Eh bien ... de ce point de vue : pointer vers les spécifications de l'API n'est pas mieux alors. Si la source n'a pas un bogue qui fait qu'elle ne se comporte pas comme il est spécifié dans les docs, vous ne pouvez pas vous fier aux docs. Il n'y a donc pas de bonne façon de répondre à une telle question.
0 votes
@Atmocreations La prochaine version de maintenance peut allègrement corriger un bug sur lequel vous comptez si vous regardez simplement la source. Vous avez vraiment besoin de savoir quel est le comportement documenté. Rien de mal à regarder la source, bien sûr, mais vous ne pouvez pas supposer que la source ne changera pas. Changer le comportement documenté est généralement un beaucoup plus important que de corriger un bug.