成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

淺談JavaIO之try with底層原理

瀏覽:3日期:2022-08-11 13:28:29
目錄IO關(guān)閉的問題使用try with resourcetry with resource的原理自定義resourceIO關(guān)閉的問題

最近寫了一個(gè)例子,讀取一個(gè)文件沒有問題,但是讀取很多個(gè)文件就會(huì)告訴我:”Can’t open so many files“,能幫我看看是什么問題嗎?可能打開文件太多了吧,用兩個(gè)命令,查看最大文件打開限制。

一個(gè)命令是

ulimit -a

淺談JavaIO之try with底層原理

第二個(gè)命令是

ulimit -n

256

看起來是最大文件限制太小了,只有256個(gè),調(diào)大一點(diǎn)就可以了。

讀文件都是一個(gè)一個(gè)讀的,沒有同時(shí)開這么多文件

好吧,看下寫的代碼吧:

BufferedReader bufferedReader = null;try { String line; bufferedReader = new BufferedReader(new FileReader('trywith/src/main/resources/www.flydean.com')); while ((line = bufferedReader.readLine()) != null) {log.info(line); }} catch (IOException e) { log.error(e.getMessage(), e);}

看完代碼,問題找到了,IO沒有關(guān)閉,應(yīng)該在使用之后,在finally里面把你的reader關(guān)閉。

下面這段代碼就行了:

BufferedReader bufferedReader = null;try { String line; bufferedReader = new BufferedReader(new FileReader('trywith/src/main/resources/www.flydean.com')); while ((line = bufferedReader.readLine()) != null) {log.info(line); }} catch (IOException e) { log.error(e.getMessage(), e);} finally { try {if (bufferedReader != null){ bufferedReader.close();} } catch (IOException ex) {log.error(ex.getMessage(), ex); }}使用try with resource

現(xiàn)在每段代碼都要手動(dòng)添加finally,實(shí)在是太麻煩了,很多時(shí)候又怕忘記關(guān)閉IO了,導(dǎo)致程序出現(xiàn)無法預(yù)料的異常。

從JDK7開始,Java引入了try with resource的新功能,把使用過后要關(guān)閉的resource放到try里面,JVM會(huì)幫你自動(dòng)close的,是不是很方便,來看下面這段代碼:

try (BufferedReader br = new BufferedReader(new FileReader('trywith/src/main/resources/www.flydean.com'))){ String sCurrentLine; while ((sCurrentLine = br.readLine()) != null){log.info(sCurrentLine); }} catch (IOException e) { log.error(e.getMessage(), e);}try with resource的原理

什么是resource呀?為什么放到try里面就可以不用自己close了?

resource就是資源,可以打開個(gè)關(guān)閉,我們可以把實(shí)現(xiàn)了java.lang.AutoCloseable接口的類都叫做resource。

先看下AutoCloseable的定義:

public interface AutoCloseable {void close() throws Exception;}

AutoCloseable定義了一個(gè)close()方法,當(dāng)我們?cè)趖ry with resource中打開了AutoCloseable的資源,那么當(dāng)try block執(zhí)行結(jié)束的時(shí)候,JVM會(huì)自動(dòng)調(diào)用這個(gè)close()方法來關(guān)閉資源。

我們看下上面的BufferedReader中close方法是怎么實(shí)現(xiàn)的:

public void close() throws IOException { synchronized (lock) {if (in == null) return;in.close();in = null;cb = null; }}自定義resource

那么我們是不是可以實(shí)現(xiàn)AutoCloseable來創(chuàng)建自己的resource呢?

我們定義這樣一個(gè)resource類:

public class CustResource implements AutoCloseable { public void helpSister(){log.info('解決問題!'); } @Override public void close() throws Exception {log.info('解決完問題,趕緊去吃飯!'); } public static void main(String[] args) throws Exception { try( CustResource custResource= new CustResource()){ custResource.helpSister(); } }}

運(yùn)行輸出結(jié)果

[main] INFO com.flydean.CustResource - 解決問題!

[main] INFO com.flydean.CustResource - 解決完問題,趕緊去吃飯!

以上就是淺談JavaIO之try with底層原理的詳細(xì)內(nèi)容,更多關(guān)于JavaIO之try with底層原理的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩专区欧美专区| 黄色国产精品一区二区三区| 狠狠色综合色区| 2017欧美狠狠色| 成人黄色av电影| 欧美日韩在线直播| 美女在线视频一区| 色噜噜夜夜夜综合网| 亚洲国产精品久久人人爱| 99精品视频网| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩高清不卡在线| 亚洲制服av| 亚洲福利一区二区三区| 亚洲一区二区四区| 亚洲欧洲精品一区二区三区| 欧美久久久久久| 中文一区二区完整视频在线观看| av一区二区三区在线| 日韩精品一区二区在线观看| 国产1区2区3区精品美女| 欧美一级高清片在线观看| 国产成都精品91一区二区三| 欧美电影免费观看高清完整版| 成人黄色777网| 国产日产亚洲精品系列| 黄色欧美日韩| 亚洲精品第一国产综合野| 国产精品久久久对白| 亚洲第一激情av| 国产区日韩欧美| 性做久久久久久| 欧美性受极品xxxx喷水| 国内精品嫩模私拍在线| 欧美一级二级三级乱码| eeuss鲁片一区二区三区| 国产欧美中文在线| 在线播放豆国产99亚洲| 亚洲最色的网站| 久久精品动漫| 蜜桃久久精品一区二区| 欧美日韩免费在线视频| 国产成都精品91一区二区三| 久久综合一区二区| 怡红院精品视频在线观看极品| 亚洲日本在线天堂| 久久国产精品亚洲77777| 青青草国产成人av片免费| 欧美狂野另类xxxxoooo| 波多野结衣中文一区| 中文字幕欧美三区| 99精品欧美| 日本亚洲三级在线| 欧美一区二区在线不卡| 97久久人人超碰| 成人欧美一区二区三区白人| 亚洲在线黄色| 国内一区二区视频| 国产亚洲女人久久久久毛片| 中文精品在线| 日韩精品一级中文字幕精品视频免费观看 | 亚洲午夜久久久久久久久电影网| 久久亚洲高清| 国产一区二区三区四| 久久久久国产精品人| 国产欧美一区二区色老头 | 激情亚洲网站| 午夜精品免费在线观看| 欧美日韩不卡一区| 91免费观看视频在线| 亚洲自拍偷拍麻豆| 51精品国自产在线| 激情久久一区| 久久66热re国产| 精品日韩在线一区| 亚洲久久视频| 久久99精品国产| 2020国产成人综合网| 国产精品一区二区三区四区五区| 久久精品国产精品亚洲精品| 精品日韩在线观看| 99视频一区| 日一区二区三区| 日韩欧美一区二区视频| 欧美一区二区三区在线免费观看| 亚洲乱码精品一二三四区日韩在线| 在线观看日韩一区| 国产一区再线| 久久66热偷产精品| 国产精品二三区| 欧美自拍丝袜亚洲| 欧美另类专区| 石原莉奈在线亚洲三区| 日韩精品久久久久久| 日韩色在线观看| 亚洲一区二区网站| 国产一区不卡视频| 欧美国产成人精品| 日本高清无吗v一区| 色综合欧美在线| 麻豆91精品91久久久的内涵| 国产精品国产精品国产专区不蜜| 欧美日韩五月天| 欧美日本国产| 久久国产生活片100| 久久精品视频一区| 麻豆成人小视频| 欧美a级一区| 国产乱对白刺激视频不卡| 亚洲丝袜制服诱惑| 在线播放中文一区| 在线亚洲免费| 国产激情视频一区二区在线观看| 亚洲欧美日韩电影| 欧美成人r级一区二区三区| 国产欧美一区二区视频| 国产99久久久国产精品免费看| 亚洲动漫第一页| 精品久久久久久久久久久久久久久久久 | 成人午夜激情在线| 午夜久久久久久久久| 日本一区免费视频| 欧美二区三区91| 久久一区中文字幕| 欧美另类高清视频在线| 国产精品1024| 日韩精品91亚洲二区在线观看| 久久精品视频网| 在线不卡中文字幕| 久久国产精品毛片| 极品日韩av| 成人精品高清在线| 久久99精品久久久久| 亚洲一级在线观看| 国产精品色婷婷| 久久综合久久久久88| 欧美日韩第一区日日骚| 久久aⅴ国产紧身牛仔裤| 亚洲午夜电影| 91蜜桃免费观看视频| 国产乱一区二区| 蜜桃视频一区二区| 午夜精品影院在线观看| 亚洲伦理在线精品| 国产精品麻豆久久久| 欧美精品一区二区久久婷婷| 欧美优质美女网站| 欧美亚洲一区| aa日韩免费精品视频一| 欧美成人一区二区在线| www.66久久| 国产成都精品91一区二区三 | 日韩午夜高潮| 国产精品国产亚洲精品看不卡15| 成人av网址在线观看| 国产福利一区二区三区视频| 日本欧洲一区二区| 一区二区三区欧美久久| 亚洲婷婷综合色高清在线| 欧美不卡一区二区三区| 欧美精三区欧美精三区| 色婷婷综合久久久久中文| 国产精品资源| 日韩视频三区| 亚洲特级毛片| 国产精品观看| a级精品国产片在线观看| 国产成人免费视频一区| 国产美女一区二区| 国产一区二区三区黄视频 | 欧美日本在线视频| 精品视频一区二区不卡| 欧美在线观看一区二区| 久久成人国产| 乱人伦精品视频在线观看| 久久aⅴ国产紧身牛仔裤| 久久黄色网页| 一道本成人在线| 在线免费亚洲电影| 欧美午夜精品一区二区蜜桃| 欧美视频一区在线| 欧美三级中文字幕| 538在线一区二区精品国产| 91精品国产福利| 日韩精品一区二区三区老鸭窝| 欧美mv日韩mv亚洲| 久久婷婷综合激情| 国产午夜精品久久久久久免费视| 精品福利一二区| 国产日韩精品一区二区浪潮av| 亚洲国产精品成人综合| 国产精品毛片久久久久久| 中文字幕亚洲一区二区av在线 | 亚洲一区中文日韩| 狠狠色综合色综合网络| 国产九色sp调教91| 波多野结衣在线一区| 亚洲欧美一区在线| 伊人精品在线| 男人天堂欧美日韩|