Download presentation
Presentation is loading. Please wait.
1
例外與檔案處理 例外處理 拋出例外 串流 Stream FileReader、FileWriter
BufferedReader、BufferedWriter FileInputStream、FileOutputStream 隨機存取檔案 請參考課本第十四、十六章
2
例外處理(一) 當java程式遇到例外或錯誤發生時,會拋 出(throw)例外物件,用來指明錯誤 例如:demo4 輸入非數字字母時
當例外沒有被處理(catch)時,預設就是 停止執行。 Java的例外處理由try catch finally三個區塊 組成的程式區塊構成(finally可以省略) 。
3
例外處理(二) 語法: try{ 要檢查的程式敘述 } catch (例外類別 變數名稱){ 例外發生時的處理敘述
finally{一定會執行的程式碼} 參考demo27
4
拋出例外 用throw這個指令可以拋出例外
常用的例外類別可以參考 ang/Exception.html 主動拋出例外的寫法可以參考demo28 Method也可以不自己處理而用 throws 指令拋出 例外給外面處理 demo28a 自己也可以定義自己的例外類別 demo28b
5
作業 課堂作業:修改梯形面積計算,處理輸入 字母的狀況 實習作業
撰寫一個程式,由鍵盤讀取一個整數字 串,若整數值小於20,拋出agetoosmall 這個例外物件,並且印出「年紀太小」 若整數值大於50,拋出agetooold這個例 外物件,並且印出「年紀太大」 整數值介於20到50之間,印出原來數值
6
串流 串流(Stream)就是指一連串的「字元」或 「位元」組成的資料流。
Java可以利用InputStream、 OutputStream、 Reader、Writer類別來處理串流輸出入。結 束必須close()。 InputStream、OutputStream用來處理「位元 串流」。 Reader、Writer用來處理「字元串流」
7
FileReader、FileWriter
繼承Reader、Writer,用來處理字元 用FileReader(filename)來開啟讀取的檔案 用FileWriter(filename)來開啟寫入的檔 案,FileWriter(filename,true)則會開啟可以 附加寫入的檔案 參考demo19a demo19b 一般我們不會直接用這兩個類別
8
BufferedReader、BufferedWriter
用bufferedxxx class可以替stream加上buffer, 有效提升I/O效率 參考demo19、demo20 常用的特殊method newLine()寫入換行字元 flush() 清空緩衝區 readLine() 讀入一整行 skip(long n) 讀取的時候跳過n個字元 write(String str) 寫出字串
9
作業題目 產生1000個亂數,寫入rand.txt檔案中,另 寫一個程式讀取此檔案,並計算數值的平 均、最大與最小值
寫程式將a.txt與b.txt內容合併存成ab.txt 寫程式讀取一個文字檔,計算其中有幾個 字,有幾個a、e、i、o、u字母
10
FileInputStream、FileOutputStream
用來處理二進位檔案 常用的特殊method available():取得讀取串流的位元數 參考demo29.java 二技作業:讀入一個不知大小的正方形 bmp檔,將之順時針轉90度、180度、270 度
11
隨機存取檔案 RandomAccessFile類別是用來隨機存取檔案
RandomAccessFile(String name, String mode) 開 檔 mode r :讀取 rw:讀寫 rwd rws:讀寫且更改時同時寫入硬碟 特殊method seek(n) 跳到第n byte 參考demo29a 這個class算是通用的檔案處理 class
Similar presentations