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