日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java关闭文本_如何更优雅的关闭java文本、网络等资源

發(fā)布時(shí)間:2023/12/10 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java关闭文本_如何更优雅的关闭java文本、网络等资源 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常在 java 中對文本、網(wǎng)絡(luò)資源等操作起來是很繁雜的,要聲明,讀取,關(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)閉代碼中,還要再來一個(gè) try/catch,看著是不是很難受,很不優(yōu)雅,很想干掉這個(gè) finally!

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

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();

}

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持聚米學(xué)院。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的java关闭文本_如何更优雅的关闭java文本、网络等资源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。