fstream 多線程讀取一份文件 Java如何實(shí)現(xiàn)自動(dòng)關(guān)閉資源?
Java如何實(shí)現(xiàn)自動(dòng)關(guān)閉資源?Java7新增加機(jī)制——手動(dòng)關(guān)了資源的try語(yǔ)句1手動(dòng)關(guān)閉資源能介紹Java7可以提高了try語(yǔ)句的功能——它不能在try關(guān)鍵字后跟一對(duì)圓括號(hào),圓括號(hào)可以不聲明,初始化設(shè)
Java如何實(shí)現(xiàn)自動(dòng)關(guān)閉資源?
Java7新增加機(jī)制——手動(dòng)關(guān)了資源的try語(yǔ)句
1手動(dòng)關(guān)閉資源能介紹
Java7可以提高了try語(yǔ)句的功能——它不能在try關(guān)鍵字后跟一對(duì)圓括號(hào),圓括號(hào)可以不聲明,初始化設(shè)置一個(gè)或多個(gè)資源,此處的資源指得是那些需要在程序結(jié)束后時(shí)必須關(guān)掉的資源(比如數(shù)據(jù)庫(kù)連接上,網(wǎng)絡(luò)連接等),try語(yǔ)句在該語(yǔ)句結(jié)束了時(shí)自動(dòng)出現(xiàn)關(guān)閉這些資源。
目的是只要try語(yǔ)句也可以算正常關(guān)了資源,這些資源實(shí)現(xiàn)類(lèi)可以實(shí)現(xiàn)程序Closeable或AutoCloseable接口,基于這些類(lèi)就前提是實(shí)現(xiàn)方法closed方法。
2代碼示例
import*
privateclassAutoCloseTest
{
employeestaticvoidmain(String[]args)
throwsIOException
{
try(
//聲明、初始化兩個(gè)可關(guān)掉的資源
//try語(yǔ)句會(huì)自動(dòng)直接關(guān)閉這兩個(gè)資源。
BufferedReaderbrfifthBufferedReader(
futureFileReader())
PrintStreampsnewPrintStream(next
FileOutputStream(a.txt)))
{
//在用兩個(gè)資源
(())
(莊生曉夢(mèng)迷蝴蝶)
}
}
}
3運(yùn)行結(jié)果
E:testJavaJava8ExceptionTESTsrcgtjavaAutoCloseTest
import*
文件a.txt中生成
莊生曉夢(mèng)迷蝴蝶
4結(jié)果分析
try后的小括號(hào)三個(gè)聲明,重新初始化兩個(gè)IO流,導(dǎo)致BufferedReader,PrintStream都實(shí)現(xiàn)程序了Closeable接口,但它們放進(jìn)try語(yǔ)句中聲明和初始化,所有try語(yǔ)手動(dòng)自動(dòng)關(guān)閉它們。所以上面的代碼是放心的。
謝謝大家
stream流式處理為什么快?
而且不確認(rèn)您問(wèn)的是不是c的stream流,參加工作后你總有機(jī)會(huì)碰到它的,它的作用分場(chǎng)景有很多種,
1.隱式轉(zhuǎn)換,是其它任何類(lèi)型向字符串裝換。
2.拼裝字符串時(shí),不過(guò)成員又都不當(dāng)然是字符串,用它就方便啊。
3.也可以重載輸出流函數(shù)根據(jù)選項(xiàng)卡結(jié)構(gòu)定制化輸出到流中。