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