先看一段**:
fileoutputstream out1 = new fileoutputstream("d:\\singleton.txt");
objectoutputstream out2 = new objectoutputstream(out1);
out1.close();//是否需要關閉內層的io流?
out2.close();
考慮一下,像這樣的巢狀io流,是否應該從內到外依次關閉呢?
答案是不需要!這些io類都是jdk自帶的,呼叫了最外層的close方法,其實是一層一層向內呼叫了最內層的io類的close方法,這也就是裝飾者模式。
當然你肯定想問,為什麼我之前自內向外逐層關閉也不會丟擲異常?
因為就算你對某個流重複關閉多次,也不會丟擲異常。
java優雅關閉io流
教科書關閉的方法是每個都需要判斷是否為空,每個都呼叫close。而且每個都需要在自己的try catch裡面呼叫 如下圖inputstream is null inputstreamreader isr null bufferedreader read null try finally catch ...
java中的常用IO流
輸入流inputstream 只能從中讀取位元組資料,而不能向其寫出資料 輸出流outputstream 只能向其寫入位元組資料,而不能從中讀取資料 輸入流inputstream 1.dataoutputstream建立乙個新的資料輸出流,將資料寫入指定基礎輸出流。2.printstream是乙個位...
Java中的IO流之字元流
看完了位元組流 接下來我們來了解一下字元流 字元流字元流是可以直接讀寫字元的io流,用字元流來讀取字元時,先讀取到位元組資料,然後轉為字元。寫出字元時,需要把字元轉為位元組再寫出。還是上 吧 filereader filereader 類中的 read 方法可以按照字元大小讀取 這樣就把文字中的文字...