這篇文章給大家介紹如何使用try-with-resource對(duì)io流進(jìn)行關(guān)閉,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)呈貢,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792例如如下讀取的文件的io流,我們之前可能會(huì)這樣寫
public class Main { public static void main(String[] args) { FileInputStream fileInputStream =null; try { fileInputStream = new FileInputStream(new File("/Users/laoniu/a.txt")); //打開(kāi)流 byte[] bytes = new byte[1024]; int line = 0; //讀取數(shù)據(jù) while ((line = fileInputStream.read(bytes))!= -1){ System.out.println(new String(bytes,0,line)); } } catch (IOException e) { e.printStackTrace(); }finally { if (fileInputStream != null){ //不為空 try { fileInputStream.close(); //關(guān)閉流 } catch (IOException e) { e.printStackTrace(); } } } } }
使用try-with-resource寫法優(yōu)雅操作io流
public class Main { public static void main(String[] args) { //把打開(kāi)流的操作都放入try()塊里 try( FileInputStream fileInputStream = new FileInputStream(new File("/Users/laoniu/a.txt"))) { byte[] bytes = new byte[1024]; int line = 0; while ((line = fileInputStream.read(bytes))!= -1){ System.out.println(new String(bytes,0,line)); } } catch (IOException e) { e.printStackTrace(); } } }
在try()中可以編寫多個(gè)文件io流或網(wǎng)絡(luò)io流。讓我們看看java編譯器是怎么幫我們實(shí)現(xiàn)的
可以看到編譯后的代碼,java編譯器自動(dòng)替我們加上了關(guān)閉流的操作。所以跟我們自己關(guān)閉流是一樣的。try-with-resource這樣優(yōu)雅的寫法還是不錯(cuò)的,讓代碼看起來(lái)不那么臃腫。
注意jdk1.7以后才可以用
關(guān)于如何使用try-with-resource對(duì)io流進(jìn)行關(guān)閉就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。