真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

io關(guān)閉代碼java ios關(guān)閉java

Java中的io流關(guān)閉問題

如下例子代碼:

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供網(wǎng)站設(shè)計制作、成都做網(wǎng)站服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

FileInputStream is = new FileInputStream(".");

BufferedInputStream bis = new BufferedInputStream(is);

bis.close();

從設(shè)計模式上看:

java.io.BufferedInputStream是java.io.InputStream的裝飾類。

BufferedInputStream裝飾一個 InputStream 使之具有緩沖功能,is要關(guān)閉只需要調(diào)用最終被裝飾出的對象的 close()方法即可,因為它最終會調(diào)用真正數(shù)據(jù)源對象的 close()方法。

BufferedInputStream的close方法中對InputStream進(jìn)行了關(guān)閉,下面是jdk中附帶的源代碼:

java.io.BufferedInputStream的api:

close

public void close()throws IOException 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。

因此,可以只調(diào)用外層流的close方法關(guān)閉其裝飾的內(nèi)層流,驗證例子:

public static void main(String[] args) throws Exception {

FileOutputStream fos = new FileOutputStream("d:\\a.txt");

OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");

BufferedWriter bw = new BufferedWriter(osw);

bw.write("java IO close test");

bw.close();

}

驗證ok

關(guān)于java中io流的關(guān)閉問題,部分代碼,這種情況用不用關(guān)閉new FileReader(file)?

是的,你的new FileReader(file)是一個匿名對象。

JVM中對于那些打開了沒有關(guān)閉的IO文件流,會在不再被使用的情況下,等到下次做Full GC的時候把他們?nèi)炕厥?,盡量少使用這種寫法。文章來自:

java中IO流操作怎樣關(guān)閉流

如果 in == null,就說明 in這個引用所指向的對象還沒有被創(chuàng)建,自然 in.close()也就不可能被執(zhí)行,而且會報異常。我是這樣想的,程序中 如果你先聲明變量

InputStream(或者其他流類型) in = null;

然后執(zhí)行其他語句,再 in = new 、、、、

在in new之前其他語句出exception,這時流沒有被打開,也就無需關(guān)閉,如果不判斷if(null != in) 硬要關(guān)閉in就出exception

另外你的代碼按如下寫會更合理:

if(null != in){

try{

in.flush();

in.close();

in = null;

}

catch(IOExection e){};

}


文章標(biāo)題:io關(guān)閉代碼java ios關(guān)閉java
URL標(biāo)題:http://weahome.cn/article/dddsgeo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部