1樓:網友
如果fw不是物件或物件為空的時候,程式會丟擲nollpointerexception異常。
你可以不關閉,但是它會一直佔用你的系統資源,fw !=null是檢測fw是不是個物件。
哈哈,有意思,判斷一下就是為了不讓程式出錯,是你的程式更健康。
再說了,你覺得你寫的程式讓別人一點,或者一執行就報錯很有面子嗎?
舉個不恰胡搭當的例子啊:
如果乙個人大便完,就要擦乾淨在出來,那個判斷只是判斷一下有沒有上廁所,如果上了就要擦乾淨,即使這個人一輩子只去一次也不行,當然也可以不擦就出來,如果你不怕別人罵你沒素質的話,呵呵。
初沒尺始化之後就不是指向為空的物件了,filewriter fw = null;是在記憶體中存乙個值,但是這個值為空,初始化就是為這枯做高個為空的值賦值,在沒有初始化的時候呼叫這個物件的屬性和方法都會報空指標異常。
個人是這麼理解的,供你參考。
2樓:網友
這是程式的嚴謹性,都沒開io流你關什麼呢。
if(fw!=null);是在finally中執行卜棗的,就是說這跡弊悄段**肯姿渣定執行,對吧!
那麼,如果沒有if判斷,你的fw在new的時候出錯了,那麼fw=null,;就會報nullpointexception。
3樓:匿名使用者
你可以不關閉,不過等你執行一段時間你就後悔沒有關閉了。
4樓:網友
如果fw是null 就會報空指標異常。
j**a中io流關閉時的疑惑
5樓:
如果保持in的引用,而其他可執行**區又可見in的話,引用in所指的物件不會被銷燬。
6樓:
直接close就好了,in=null,告訴jvm,可**。
io流操作中建立的流物件為什麼一定close
7樓:
因為你不呼叫close()函式就會造成資源的浪費,流物件佔用的資源不會自動的被**,所以要手動的關閉然後再次利用這些資源,否則程式大的話就會出現資源佔用率過高執行速度慢等問題。
8樓:趙楚行和正
物件當然還在,只是流通到關閉了,不能再進行讀和寫的操作了,你可以在close後打個斷點看看之前的stream物件。
j**a的io流中,什麼時候應該在流關閉之前加flush,什麼時候不用
9樓:網友
正常執行close的話,一般不需要,如果可能發生異常結束,那就flush一下。
10樓:網友
一般輸出流都需要flush
為什麼在j**a中開啟流後一定要關閉流??好像關不關沒有不同,程式的結果都是一樣的。。。
11樓:非情林
舉個簡單例子,你開啟寫入檔案等,如果你用流開啟了檔案,寫入檔案後,你沒有關閉檔案,在程式執行完後,你想刪除檔案不刪不掉的。。
12樓:扒扒組
流不關資源佔著記憶體,你乙個小的程式感覺不出來,要是好多流都不關,就會導致宕機,記憶體洩流!建議培養良好的編碼意識,乙個小的程式也要吧流關了。
13樓:網友
你每次都不關閉的話會無限的增加記憶體負擔~到一定程度 系統不就因記憶體不足而崩潰了麼~
14樓:
在使用資源操作的時候必須進行關閉,如果不關閉則會出現資源被佔用的問題。
15樓:網友
莫非你每次上完廁所不搽屁屁。
j**a中io流操作怎樣關閉流
16樓:大時代暑
in=null時的意思就是說流還沒有被初始化時就報異常了,此時流為空值。對於空值的流是不能關閉的,否則會出空指標異常。所以之前要判斷一下。
17樓:網友
呼叫流的close();方法關閉。
18樓:網友
有close()方法,就是關閉的。
為什麼j**a io流 區域性的每次開啟 迴圈結束後必須要關閉呢
19樓:網友
一樓正解,寫完之後flush
j**a中io流,不為null時關閉,但是我老感覺如果是讀了一半時也是不為空啊,怎麼解釋
20樓:網友
讀了一半,那會報異常啊,流關閉可以放在finally裡,就是不管發不發生異常都關閉流。
21樓:網友
可以使用 try 結構自動關閉了。
呼叫構造方法丟擲異常時,才會是 null吧。
j**a中的io流關閉問題
22樓:網友
把從for 迴圈裡拿出來,要不然讀了第一次就把流給關了。
為什麼 IO 多路復用要搭配非阻塞 IO
epoll的et模式下是必須使用非阻塞io的。et模式指的是當資料從無到有時,才通知該fd。資料讀不完,也不會再次通知,所以read時一定要採用迴圈的方式一直讀到read函式返回 1為止。此時採用阻塞的read,那麼就阻塞了整個執行緒。看 tornado 原始碼時候,我也產生了同樣的疑問。首先基於 ...
為什麼ios11很卡,為什麼ios11會卡頓
因為ios是為適棗亮羨配 iphone iphonex 或者 iphone 而開發的,更早些的凳拍蘋果手機安裝它就有些鍵侍勉為其難了。為什麼ios會卡頓 每次蘋果一發布新版ios,使用過的使用者總是會抱怨電池續航降低,應用存在問題等等情況,像這次的ios 也不例外,公升級到ios後很多應用啟動速度變慢了...
玩DNF為什麼開G要關閉遊戲?
把你的客戶端重新更新下,這麼簡單的問題。就好像你得了感冒,體內白細胞雖然殺不了流感病毒,但它還是存在的,還會繼續抵抗其它病毒,雖然有時抵抗無效。如果不行,看看你的g是不是最新版本,彈出的是什麼 tx還是g的 問題就出在 建議你試一下 在選人物的時候開g 以前我耍開g的是一樣的情況 先開g進遊戲會被遊...