對(duì)于過濾流的關(guān)閉,一般采取先開后關(guān)、由外向內(nèi)的原則。
FileInputStream f=new FileInputStream( "file ");
BufferedInputStream b=new BufferedInputStream(f);
DataInputStream d=new DataInputStream(b);
關(guān)閉”真正有意義的事情在于“釋放系統(tǒng)資源”。在這個(gè)例子里,只有FileInputStream占據(jù)了系統(tǒng)資源(打開了一個(gè)文件),另外兩個(gè)流對(duì)象只是從數(shù)據(jù)處理角度做的包裝(可能會(huì)占用一些內(nèi)存,但不占用其它“系統(tǒng)資源”)。所以,只需要確保關(guān)閉了FileInputStream即可。
在實(shí)際編程實(shí)踐中,你不一定總能清楚地知道每層的流對(duì)象是否占據(jù)了系統(tǒng)資源,所以,最安全(也是最常規(guī))的做法就是
關(guān)閉最外層的那個(gè)對(duì)象。這種逐層包裝的對(duì)象在實(shí)現(xiàn)上都會(huì)有一個(gè)特點(diǎn),像“關(guān)閉”這種操作都會(huì)逐層向內(nèi)調(diào)用。
引自:http://blog.sina.com.cn/s/blog_6307d85b0100gqtt.html
posted on 2010-02-25 11:26
身在半空 閱讀(1161)
評(píng)論(0) 編輯 收藏