欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java使用 try-with-resources 實現(xiàn)自動關(guān)閉資源的方法

 更新時間:2020年06月17日 11:05:49   作者:C、空白格  
這篇文章主要介紹了Java使用 try-with-resources 實現(xiàn)自動關(guān)閉資源的方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、 在Java1.7之前,我們需要通過下面這種方法, 在finally中釋放資源,這種方法有點繁瑣。

 BufferedReader br = null;
    String str;
    try {
      br = new BufferedReader(new FileReader(""));
      while ((str = br.readLine()) != null) {
        System.out.println(str);
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (br != null) {
        try {
          br.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }

2、在java1.7之后,可以使用try-with-resources實現(xiàn)自動關(guān)閉資源

try (BufferedReader br = new BufferedReader(new FileReader(""))) {
      while ((str = br.readLine()) != null) {
        System.out.println(str);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }

這樣看上去,是不是感覺代碼干凈了許多,當程序運行完離開try語句塊時,( )里的資源就會被自動關(guān)閉。

但是try-with-resources還有幾個關(guān)鍵點要記?。?br />

①、try()里面的類,必須實現(xiàn)了AutoCloseable接口。
②、在try()代碼中聲明的資源被隱式聲明為fianl。
③、使用分號分隔,可以聲明多個資源。

3、自定義類并實現(xiàn)AutoCloseable接口

class TestAutoClosable implements AutoCloseable {

  @Override
  public void close() throws Exception {
    System.out.println("close");
  }

  public void test() {
    System.out.println("test");
  }
  
}

接下來我們測試下,我們寫得自定義類

 try (BufferedReader br = new BufferedReader(new FileReader("E:/test.txt"));
       TestAutoClosable testAutoClosable = new TestAutoClosable()) {
      testAutoClosable.test();
    } catch (Exception e) {
      e.printStackTrace();
    }

當調(diào)用testAutoClosable.test()方法時,下面是控制臺打印的:

test
close

可以看到資源被成功關(guān)閉。

到此這篇關(guān)于Java使用 try-with-resources 實現(xiàn)自動關(guān)閉資源的方法的文章就介紹到這了,更多相關(guān)java 自動關(guān)閉資源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis-plus條件構(gòu)造器的操作代碼

    mybatis-plus條件構(gòu)造器的操作代碼

    mybatis-plus提供了AbstractWrapper抽象類,提供了很多sql語法支持的方法,比如模糊查詢,比較,區(qū)間,分組查詢,排序,判斷空,子查詢等等,方便我們用面向?qū)ο蟮姆绞饺崿F(xiàn)sql語句,本文重點給大家介紹mybatis-plus條件構(gòu)造器的操作代碼,感興趣的朋友一起看看吧
    2022-03-03
  • ???????Java公平鎖和非公平鎖的區(qū)別

    ???????Java公平鎖和非公平鎖的區(qū)別

    本文介紹???????Java公平鎖和非公平鎖區(qū)別,公平鎖是每個線程獲取鎖順序是按照線程訪問鎖的先后順序獲取的,最前面的線程總是最先獲取到鎖;而非公平鎖是每個線程獲取鎖的順序是隨機的,并不會遵循先來先得的規(guī)則,所有線程會競爭獲取鎖,下文內(nèi)容需要的朋友可以參考下
    2022-05-05
  • springboot中websocket簡單實現(xiàn)

    springboot中websocket簡單實現(xiàn)

    本文主要介紹了springboot中websocket簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Java 詳解單向加密--MD5、SHA和HMAC及簡單實現(xiàn)實例

    Java 詳解單向加密--MD5、SHA和HMAC及簡單實現(xiàn)實例

    這篇文章主要介紹了Java 詳解單向加密--MD5、SHA和HMAC及簡單實現(xiàn)實例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 如何擴展Spring Cache實現(xiàn)支持多級緩存

    如何擴展Spring Cache實現(xiàn)支持多級緩存

    這篇文章主要介紹了如何擴展Spring Cache實現(xiàn)支持多級緩存,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • java8中Stream的使用示例教程

    java8中Stream的使用示例教程

    Stream是Java8的一大亮點,是對容器對象功能的增強,下面這篇文章主要給大家介紹了關(guān)于java8中Stream使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • 使用javaMail實現(xiàn)發(fā)送郵件

    使用javaMail實現(xiàn)發(fā)送郵件

    這篇文章主要為大家詳細介紹了使用javaMail實現(xiàn)發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • java設(shè)計模式策略模式圖文示例詳解

    java設(shè)計模式策略模式圖文示例詳解

    這篇文章主要為大家介紹了java設(shè)計模式策略模式圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 我總結(jié)的幾種@Transactional失效原因說明

    我總結(jié)的幾種@Transactional失效原因說明

    這篇文章主要是我總結(jié)的幾種@Transactional失效原因說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java項目--家庭收支記錄程序

    Java項目--家庭收支記錄程序

    本文主要介紹Java基礎(chǔ)階段的一個小項目——家庭收支記錄程序(附完整源代碼),本項目所用到的主要知識點:基本語法、數(shù)組和方法。本項目并不難,主要是對Java初學者的基礎(chǔ)綜合運用的訓練及檢驗
    2021-07-07

最新評論