いつもお世話になっています。また、質問をさせてください。

よく、
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
のようなコードを見かけます。ところが、最後にin.close();をしている本と
していない本があります。一般に、ファイルを開く場合なら、私の知る限り100%
closeしているのに、System.inのときは、たいていの教科書がcloseしていない
のです。
今のところ、動作に問題はないのですが、不安です。
System.inの場合もcloseした方がよいのでしょうか、それとも不要なのでしょうか?

よろしくお願いします。