最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何更優(yōu)雅的關(guān)閉java文本、網(wǎng)絡(luò)等資源

 更新時(shí)間:2019年06月14日 10:30:05   作者:fleyX  
這篇文章主要介紹了如何更優(yōu)雅的關(guān)閉java文本、網(wǎng)絡(luò)等資源,在 finally 的關(guān)閉代碼中,還要再來(lái)一個(gè) try/catch,看著是不是很難受,很不優(yōu)雅,很想干掉這個(gè) finally!,需要的朋友可以參考下

通常在 java 中對(duì)文本、網(wǎng)絡(luò)資源等操作起來(lái)是很繁雜的,要聲明,讀取,關(guān)閉三個(gè)階段,還得考慮異常情況。假設(shè)我們要讀取一段文本顯示到控制臺(tái),通常會(huì)有如下的代碼:

public static void main(String[] args) {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream("./pom.xml");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader reader = new BufferedReader(inputStreamReader);
String str;
while ((str = reader.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
}
}
}
}

在 finally 的關(guān)閉代碼中,還要再來(lái)一個(gè) try/catch,看著是不是很難受,很不優(yōu)雅,很想干掉這個(gè) finally!

自從 java7 以來(lái)這個(gè)問(wèn)題已經(jīng)有比較好的解決辦法了,那就是try-with-resource,可能是 jdk 開(kāi)發(fā)人員也覺(jué)得之前的關(guān)閉資源寫(xiě)法太反人類(lèi),所以做了這樣的一個(gè)語(yǔ)法糖。注意這并不是什么新特性,只是一個(gè)語(yǔ)法糖,簡(jiǎn)化代碼的。如果你反編譯代碼后會(huì)發(fā)現(xiàn)還是 try/catch/finally 的傳統(tǒng)寫(xiě)法。

try-with-resource 用法如下:

try (FileInputStream inputStream = new FileInputStream("./pom.xml")) {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
String str;
while ((str = reader.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}

無(wú)需在 finally 中手動(dòng)關(guān)閉 inputStream,凡是實(shí)現(xiàn)了 AutoCloseable 接口的,且在 try 后面的括號(hào)中創(chuàng)建的,都會(huì)在 try/catch 執(zhí)行完畢后確保調(diào)用 close 方法。這么寫(xiě)是不是優(yōu)雅多了??

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java、C++中子類(lèi)對(duì)父類(lèi)函數(shù)覆蓋的可訪(fǎng)問(wèn)性縮小的區(qū)別介紹

    Java、C++中子類(lèi)對(duì)父類(lèi)函數(shù)覆蓋的可訪(fǎng)問(wèn)性縮小的區(qū)別介紹

    這篇文章主要給大家介紹了關(guān)于Java、C++中子類(lèi)對(duì)父類(lèi)函數(shù)覆蓋的可訪(fǎng)問(wèn)性縮小的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • 配置Servlet兩種方法以及特點(diǎn)詳解

    配置Servlet兩種方法以及特點(diǎn)詳解

    這篇文章主要介紹了配置Servlet兩種方法以及特點(diǎn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot2 實(shí)現(xiàn)JPA分頁(yè)和排序分頁(yè)的案例

    SpringBoot2 實(shí)現(xiàn)JPA分頁(yè)和排序分頁(yè)的案例

    這篇文章主要介紹了SpringBoot2 實(shí)現(xiàn)JPA分頁(yè)和排序分頁(yè)的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • JVM完全解讀之GC日志記錄分析

    JVM完全解讀之GC日志記錄分析

    這篇文章主要介紹了JVM完全解讀之GC日志記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-01-01
  • Java Stream的基本概念以及創(chuàng)建方法

    Java Stream的基本概念以及創(chuàng)建方法

    這篇文章主要介紹了Java Stream的基本概念以及創(chuàng)建方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • java?環(huán)境配置(2023年詳細(xì)教程)

    java?環(huán)境配置(2023年詳細(xì)教程)

    這篇文章首先為了完善我的知識(shí)體系,今后一些軟件的安裝教程也可能會(huì)用到想寫(xiě)一個(gè)更加詳細(xì)的,因?yàn)檫@并不僅僅是寫(xiě)給?IT?行業(yè)的,其它行業(yè)可能也需要配置java環(huán)境
    2023-06-06
  • 教你怎么用Java實(shí)現(xiàn)給圖片打上水印

    教你怎么用Java實(shí)現(xiàn)給圖片打上水印

    這篇文章主要介紹了教你怎么用Java實(shí)現(xiàn)給圖片打上水印,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Springboot實(shí)現(xiàn)阿里云通信短信服務(wù)有關(guān)短信驗(yàn)證碼的發(fā)送功能

    Springboot實(shí)現(xiàn)阿里云通信短信服務(wù)有關(guān)短信驗(yàn)證碼的發(fā)送功能

    短信驗(yàn)證碼是通過(guò)發(fā)送驗(yàn)證碼到手機(jī)的一種有效的驗(yàn)證碼系統(tǒng)。主要用于驗(yàn)證用戶(hù)手機(jī)的合法性及敏感操作的身份驗(yàn)證。下面通過(guò)本文大家分享Springboot實(shí)現(xiàn)阿里云通信短信服務(wù)有關(guān)短信驗(yàn)證碼的發(fā)送功能,一起看看吧
    2017-08-08
  • Java 實(shí)現(xiàn)對(duì)稱(chēng)加密算法

    Java 實(shí)現(xiàn)對(duì)稱(chēng)加密算法

    這篇文章主要介紹了Java 實(shí)現(xiàn)對(duì)稱(chēng)加密算法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-11-11
  • Java9新特性Module模塊化編程示例演繹

    Java9新特性Module模塊化編程示例演繹

    這篇文章主要為大家介紹了Java9新特性Module模塊化編程的示例演繹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03

最新評(píng)論

张家港市| 白玉县| 云梦县| 湖口县| 盐山县| 龙山县| 梅河口市| 遵义市| 东乌珠穆沁旗| 全椒县| 株洲县| 天全县| 红原县| 广东省| 庄浪县| 黄骅市| 平安县| 台东市| 门头沟区| 通河县| 塘沽区| 洛扎县| 清远市| 什邡市| 宁都县| 高雄县| 平武县| 泉州市| 万年县| 永年县| 当阳市| 台东市| 昌吉市| 阿坝| 巴马| 凤凰县| 汾西县| 古田县| 读书| 宜春市| 大渡口区|