關(guān)于Java中的try-with-resources語(yǔ)句
介紹
try-with-resources是Java中的環(huán)繞語(yǔ)句之一,旨在減輕開(kāi)發(fā)人員釋放try塊中使用的資源的義務(wù)。
它最初在Java 7中引入,背后的全部想法是,開(kāi)發(fā)人員無(wú)需擔(dān)心僅在一個(gè)try-catch-finally塊中使用的資源的資源管理。這是通過(guò)消除對(duì)finally塊的依賴(lài)而實(shí)現(xiàn)的。
此外,使用try-with-resources的代碼通常更清晰易讀,因此使代碼更易于管理,尤其是當(dāng)我們處理許多try塊時(shí)。
語(yǔ)法
try-with-resources的語(yǔ)法與通常try-catch-finally語(yǔ)法相同。
普通try:
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(fileName));
writer.write(str); // do something with the file we've opened
} catch (IOException e) {
// handle the exception
} finally {
try {
if (writer != null)
writer.close();
} catch (IOException e) {
// handle the exception
}
}try-with-resources:
try(BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))){
writer.write(str); // do something with the file we've opened
}
catch(IOException e){
// handle the exception
}Java理解此代碼的方式:
try語(yǔ)句之后在括號(hào)中打開(kāi)的資源僅在此處和現(xiàn)在需要。
.close()在try塊中完成工作后,將立即調(diào)用它們的方法。如果在try塊中拋出異常,無(wú)論如何我會(huì)關(guān)閉這些資源。
注意:
從Java 9開(kāi)始,沒(méi)有必要在try-with-resources語(yǔ)句中聲明資源。
可以這樣做:
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
try (writer) {
writer.write(str); // do something with the file we've opened
}
catch(IOException e) {
// handle the exception
}到此這篇關(guān)于關(guān)于Java中的try-with-resources語(yǔ)句的文章就介紹到這了,更多相關(guān)Java try-with-resources語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java中try-with-resources使用教程
- Java中try-with-resources自動(dòng)關(guān)閉資源的使用方法及注意事項(xiàng)
- Java使用try-with-resources實(shí)現(xiàn)自動(dòng)解鎖
- Java異常--常見(jiàn)方法--自定義異常--增強(qiáng)try(try-with-resources)詳解
- java面試try-with-resources問(wèn)題解答
- Java try()語(yǔ)句實(shí)現(xiàn)try-with-resources異常管理機(jī)制操作
- Java使用 try-with-resources 實(shí)現(xiàn)自動(dòng)關(guān)閉資源的方法
- Java中try-with-resources的使用詳解
相關(guān)文章
IDEA在一個(gè)工作空間中管理多個(gè)項(xiàng)目的詳細(xì)步驟
這篇文章主要介紹了IDEA在一個(gè)工作空間中管理多個(gè)項(xiàng)目的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Java開(kāi)發(fā)中的23種設(shè)計(jì)模式詳解(推薦)
本篇文章主要介紹了Java開(kāi)發(fā)中的23種設(shè)計(jì)模式詳解,現(xiàn)在分享給大家,也給大家做個(gè)參考。感興趣的小伙伴們可以參考一下。 設(shè)計(jì)模式(Design Patterns)2016-11-11
mybatis Interceptor對(duì)UpdateTime自動(dòng)處理的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于使用mybatis Interceptor對(duì)UpdateTime自動(dòng)處理的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-12-12
Java實(shí)現(xiàn)俄羅斯方塊游戲簡(jiǎn)單版
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)俄羅斯方塊游戲簡(jiǎn)單版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Java如何優(yōu)雅關(guān)閉異步中的ExecutorService
在并發(fā)編程領(lǐng)域,Java的ExecutorService是線程池管理的關(guān)鍵接口,這篇文章主要為大家介紹了如何優(yōu)雅關(guān)閉異步中的ExecutorService,需要的可以了解下2025-02-02
SpringBoot結(jié)合dev-tool實(shí)現(xiàn)IDEA項(xiàng)目熱部署的流程步驟
這篇文章主要給大家介紹了SpringBoot結(jié)合dev-tool實(shí)現(xiàn)IDEA項(xiàng)目熱部署的流程步驟,文章通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)有一定的幫助,需要的朋友可以參考下2023-10-10
解析SpringBoot項(xiàng)目開(kāi)發(fā)之Gzip壓縮過(guò)程
這篇文章主要介紹了SpringBoot項(xiàng)目開(kāi)發(fā)之Gzip壓縮過(guò)程,本文給大家分享幾種Gzip壓縮方式,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07

