Java 的例外與輸入出檔案處理 Jing Ming Huang.

Slides:



Advertisements
Similar presentations
第四章 类、对象和接口.
Advertisements

第一單元 建立java 程式.
計算機程式語言實習課.
檔案處理.
第 16 章 資料輸入與輸出.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
第五章 字符串.
程設一.
第二章 JAVA语言基础.
例外處理 例外的基本觀念 多重例外處理 throw 與 throws.
例外與檔案處理 例外處理 拋出例外 串流 Stream FileReader、FileWriter
File Access 井民全製作.
輸入輸出 學習目標 瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構
创意源自激情,技术成就梦想 畅翼创新俱乐部 2012年春俱乐部第三次技术培训 赵程.
Ch08 基本輸出入與檔案處理 物件導向系統實務.
第9章 例外與檔案處理 9-4 檔案與資料夾處理 9-5 Java的輸入/輸出串流 9-6 檔案的讀取與寫入.
第13章 檔案與資料夾處理 13-1 System.IO類別的基礎 13-2 檔案與資料夾操作 13-3 文字檔案的讀寫
第5章 异常处理 王德俊 上海交通大学继续教育学院.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
API设计实例分析 通用IO API.
Ch11 JAVA的例外處理 物件導向程式設計(II).
例外處理(Exception Handling)
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
Java基础 JavaSE异常.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
Multithread 多執行緒 I/O Lecturer:楊昌樺.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
Java程式概觀.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 二元檔輸出入.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第九章 输入/输出流.
第 14 章 例外處理.
類別(class) 類別class與物件object.
Java语言程序设计 第五部分 Java异常处理.
|13 檔案資料讀寫.
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
Java 程式設計 講師:FrankLin.
service-side: throw Exceptions client-side: try-and-catch
异常及处理.
第10章 檔案與資料夾處理 10-1 檔案的基礎 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫 10-4 檔案與資料夾處理.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Java程序设计 第2章 基本数据类型及操作.
C/C++/Java 哪些值不是头等程序对象
第五讲 JSP中的文件操作(1) 教学目的 本讲主要讲述JSP中使用Java输入、输出流实现文件的读写 操作 。 知识要点
第一單元 建立java 程式.
JAVA 程式設計 資訊管理系 - 網路組.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
第7章 异常处理.
引用檔案.
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
挑戰C++程式語言 ──第7章 輸入與輸出.
Review 1~3.
陣列與結構.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
第二章 Java基本语法 讲师:复凡.
Java程序设计 第17章 异常和断言.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
第2章 Java语言基础.
第4讲 类和对象、异常处理 ggao.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
第二章 Java基础语法 北京传智播客教育
Unix指令4-文字編輯與程式撰寫.
方法(Method) 函數.
InputStreamReader Console Scanner
Presentation transcript:

Java 的例外與輸入出檔案處理 Jing Ming Huang

Java的例外處理 例外(Exception):程式執行時,發生不正常執行狀態時所發生的事件 架構: 產生錯誤的例外A MethodC()方法 產生錯誤的例外A 找尋例外處理 MethodB()方法 自行丟出例外B到main MethodA()方法 擁有例外處理A main()方法 擁有例外處理B

13-1-2 Throwable類別 Throwable類別擁有兩個直接的子類別: Error類別:屬於JVM的嚴重錯誤,將導致程式的終止執行,並沒有辦法使用例外處理來處理錯誤 Exception類別:其子類別是各種例外物件,也是例外處理可以處理的部份 ArithmeticException 數學運算時產生的例外 ArrayIndexOutOfBoundsException 陣列索引值小於0或超過陣列邊界所產生的例外 IllegalArgumentException 儲存陣列元素時型態不符產生的例外 NullPointerException 物件值為null產生的例外

例外處理的程式敘述 Ex:Ch13_2_1.java 敘述分為三個程式區塊:try、 catch、 finally,可以建立程式的例外處理 catch(ExceptionType e) { //例外處理 …………… } finally{……………..} 檢查是否發生例外 參數e為例外類型的物件 一個程式選項,區塊進行程式的善後 Ex:Ch13_2_1.java

13-2-2同時處理多種例外 Ex:Ch13_2_2.java 可使用多個catch程式區塊,同時處理多種不同的例外 try{ } catch(ArithmeticException e ) {………..} catch(ArrayIndexOutOfBoundsException e ) {………..} finally{ } Ex:Ch13_2_2.java

13-3丟出例外與自訂Exception類別 Ex:Ch13_3_1.java 方法本身也可以自行丟出例外,或當例外產生時,丟給其他的方法 13-3-1 使用throw指令丟出例外 語法: throw ThrowableObject; ex:丟出ArithmeticException的例外物件 throw new ArithmeticException("值小於5"); 繼承自Throwable類別的物件 使用new建立例外物件 建構子參數是讓getMessage()方法取得的例外說明字串 Ex:Ch13_3_1.java

13-3-2在方法丟出例外 Ex:Ch13_3_2.java static double cal (double a, double b,double c)throws IllegalArgumentException { ………….. throw new IllegalArgumentException(〝c不能是0!〞); } Ex:Ch13_3_2.java

自訂Exception類別 Ex:Ch13_3_3.java class MyException extends Exception { int data; public MyException(int data) this.data = data; } public String getMessage() return ("出價太多次: " + data); Ex:Ch13_3_3.java

13-4 Java的輸入/輸出串流 13-4-1 串流的基礎 讀取 寫入 來源資料 程式 目的資料 輸入串流 輸出串流

13-4-2 java.io套件的串流類別 分為兩大類: 字元串流(Character Stream) 位元組串流(Byte Stream) 字元串流: 適合“人類閱讀”的串流 BufferReader/BufferWriter:處理緩衝區I/O InputStreamReader/OutputStreamWriter: InputStreamReadery在讀取位元組資料後,可以將它轉成字元組資料,OutputStreamWriter是將字元轉成位元組資料 FileReader/FileWriter:處理檔案I/O

位元組串流: “電腦格式“串流可處理二進位資料的執行檔 FileInputStream/FileOutputStream:處理檔案I/O BufferInputStream/BufferOutputStream:處理緩衝區I/O DataInputStream/DataOutputStream:讀取或寫入java基本資料型態的資料

13-5標準輸出與輸入串流 int read () int read (char[]) ->指System類別的System.in和System.out子類別,可以從標準輸入讀取資料和輸出到標準輸出 int read () 讀取1個字元 int read (char[]) 讀取字元陣列,當到資料資料結尾時,傳回-1 int read (char[],int,int) 讀取從第2個參數int索引值開始長度為第3個參數int的字元陣列 void write(int) 寫入整數 void write(char[]) 寫入1個字元陣列 void write(char[],int,int) 寫入從第2個參數int索引值開始長度第3個參數int的字元陣列 void flush() 清除串流,也是將串流資料全部輸出 void close() 關閉串流

13-5-2標準輸出 將資料輸出到螢幕,可開啟System.out標準輸出的OutputStreamWriter串流然後使用緩衝器BufferedWriter串流來加速資料處理 BufferedWriter output = new BufferedWriter( new OutputStreamWriter(System.out)); void write(String) 寫入1個字串 void write(String,int,int) 寫入從第2個參數int索引值開始長度為第3個參數int的字串 Ex:Ch13_5_2.java

13-5-3 標準輸入 Ex:Ch13_5_3.java String readLine() 從鍵盤輸入資料:開System.in標準輸出的Input StreamReader串流,然後使用緩衝區Bufferedreader串流加速資料的處理 BufferedReader input = new BufferedReader( new InputStreamReader(System.in)); String readLine() 讀取1行「 \r 」、 「 \n 」 、「 \r\n 」結尾的文字 Ex:Ch13_5_3.java

13-6 Reader/Writer檔案串流 Ex:Ch13_6_1.java 13-6-1 寫入文字檔案 目標串流:檔案 用FileWriter串流開啟檔案,以BufferedWriter串流加速資料的處理 BufferedWriter Output = new BufferedWriter(new FileWriter(file)); Ex:Ch13_6_1.java

Ex:Ch13_6_2.java Ex:Ch13_6_3.java 13-6-2 讀取文字檔案 目標串流:檔案 用FilerReader串流開啟檔案,以BufferedReader串流加速資料的處理 BufferedReader input = new BufferedReader(new FileReader(file)); 13-6-3 檔案複製 整合前兩節範例就可以建立檔案複製程式 Ex:Ch13_6_2.java Ex:Ch13_6_3.java

13-7 InputSteam/OutputStream檔案串流 處理二進位檔案:使用位元組串流的InputStream/OutStream類別處理檔案的讀取和寫入 int read() 讀取1個位元組 int read(byte[]) 讀取位元組陣列當讀到資料結尾時,傳回-1 int read(byte[],int,int) 讀取從第2個參數int索引值開始長度為第3個參數int的位元組陣列 void write(int) 寫入整數 void write(byte[]) 寫入1個位元組陣列 void write(byte[],int,int) 寫入從第2個參數int索引值開始長度為第3個參數int的位元組陣列

位元組串流要轉換成字元串流:使用InputStreamWriteer/InputStreamReader串流當過濾器,過濾成字元串流 BufferedOutputStream bos=new BufferedOutputStream( new FileOutputStream(file)); OutputStreamWriter output = new OutputStreamWriter(bos); …………………………………… BufferedInputStream bis=new BufferedInputStream( new FileInputStream(file)); InputStreamReader input = new InputStreamReader(bis); ex:Ch13_7.java

13-8 隨機存取檔案的處理 Ex:Ch13_8.java 使用非順序和隨機方式來存取檔案內容,可以使用索引存取元素,這個索引稱為「檔案指標」。 RandomAccessFile input = new RandomAccessFile(file,"rw"); RandomAccessFile input = new RandomAccessFile(file,"r"); int skip Bytes(int) 移動檔案指標,向前移動參數int個位元組 void seek(int) 移動檔案指標到參數int位置,這是long參數,位置從0的檔頭開始 long getFilePointer() 取得目前檔案指標的位置,這是long整數 Ex:Ch13_8.java