對于過濾流的關(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)資源”。在這個例子里,只有FileInputStream占據(jù)了系統(tǒng)資源(打開了一個文件),另外兩個流對象只是從數(shù)據(jù)處理角度做的包裝(可能會占用一些內(nèi)存,但不占用其它“系統(tǒng)資源”)。所以,只需要確保關(guān)閉了FileInputStream即可。
在實際編程實踐中,你不一定總能清楚地知道每層的流對象是否占據(jù)了系統(tǒng)資源,所以,最安全(也是最常規(guī))的做法就是
關(guān)閉最外層的那個對象。這種逐層包裝的對象在實現(xiàn)上都會有一個特點,像“關(guān)閉”這種操作都會逐層向內(nèi)調(diào)用。
引自:http://blog.sina.com.cn/s/blog_6307d85b0100gqtt.html
posted on 2010-02-25 11:26
身在半空 閱讀(1161)
評論(0) 編輯 收藏