我們使用try-catch-finally來接收IO流的異常
finally是最后執行的步驟,非常適合最后存放close來關閉IO流,而且編程中我們不可以隨意拋出異常,必須對異常進行處理。
從try-catch寫成try-catch-finally的思路如下:

我們要把close放到finally里,因此:

定義在try里的fos不可以在finally里使用,因此我們把fos定義在trycatch外:

fos拿到外面作為局部遍歷要先賦值,所以給fos賦值null:

fos賦值了null的含義是字節流指向空,這顯然是空指針異常,因此:

close()方法本身就有編譯期異常,需要try-catch處理。
最終:

