第9章 例外與檔案處理 9-4 檔案與資料夾處理 9-5 Java的輸入/輸出串流 9-6 檔案的讀取與寫入.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

計算機程式語言實習課.
檔案處理.
第 16 章 資料輸入與輸出.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
第10章 儲存偏好設定、檔案與資料庫 10-1 儲存偏好設定 10-2 儲存至檔案 10-3 關聯式資料庫與SQLite
Multithread 多執行緒 I/O Lecturer:曾學文.
第二章 JAVA语言基础.
例外與檔案處理 例外處理 拋出例外 串流 Stream FileReader、FileWriter
File Access 井民全製作.
輸入輸出 學習目標 瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構
创意源自激情,技术成就梦想 畅翼创新俱乐部 2012年春俱乐部第三次技术培训 赵程.
Ch08 基本輸出入與檔案處理 物件導向系統實務.
第十三章 網路檔案傳遞(File Transition)
目标 运用File类进行文件操作 理解流,标准输入/输出流的概念
視窗程式設計 1. Java 進階回顧(1): 檔案處理
Chin-Yi Tsai Java Chin-Yi Tsai
第7章 输入输出处理.
第13章 檔案與資料夾處理 13-1 System.IO類別的基礎 13-2 檔案與資料夾操作 13-3 文字檔案的讀寫
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
第十四章 I/O與資料流處理.
第5章 基本輸入與輸出 5-1 程式的輸入與輸出 5-2 字元與字串的輸入 5-3 字元與字串的輸出 5-4 格式化資料的輸入
Java 的例外與輸入出檔案處理 Jing Ming Huang.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
第12章 伺服器的檔案處理 12-1 System.IO類別的基礎 12-2 檔案與資料夾操作 12-3 文字檔案的寫入
Multithread 多執行緒 I/O Lecturer:楊昌樺.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
Java程式概觀.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
Java程序设计 第18章 二进制I/O.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 二元檔輸出入.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第九章 输入/输出流.
第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载
類別(class) 類別class與物件object.
第12章 JSP的檔案與電子郵件處理 12-1 伺服端的檔案處理 12-2 伺服端檔案的讀取與寫入 12-3 客戶端的檔案上傳
安裝JDK 安裝Eclipse Eclipse 中文化
Echo Server/Client Speaker:Fang.
|13 檔案資料讀寫.
Ch10 字元與字串 物件導向程式設計(II).
檔案與磁碟的基本介紹.
第七章 檔案處理.
Java 程式設計 講師:FrankLin.
第 14 章 檔案與串流 14.1 檔案概論 14.2 串流概論 14.3 File(檔案/資料夾)類別 14.4 字元資料的存取
第10章 檔案與資料夾處理 10-1 檔案的基礎 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫 10-4 檔案與資料夾處理.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
第五讲 JSP中的文件操作(1) 教学目的 本讲主要讲述JSP中使用Java输入、输出流实现文件的读写 操作 。 知识要点
第一單元 建立java 程式.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
VB2005 DataBase Manipulation Command for Access
第 19 章 XML記憶體執行模式.
雲端計算.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
如何使用Gene Ontology 網址:
引用檔案.
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
挑戰C++程式語言 ──第7章 輸入與輸出.
MiRanda Java Interface v1.0的使用方法
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
只要功夫深 铁杵磨成针 —— 写在前面的话.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Chapter 4 Multi-Threads (多執行緒).
9 输入输出及文件操作.
Unix指令4-文字編輯與程式撰寫.
InputStreamReader Console Scanner
Presentation transcript:

第9章 例外與檔案處理 9-4 檔案與資料夾處理 9-5 Java的輸入/輸出串流 9-6 檔案的讀取與寫入

9-4 檔案與資料夾處理 9-4-1 顯示檔案和資料夾清單 9-4-2 顯示檔案資訊 9-4-3 更改檔名與刪除檔案 9-4-4 建立資料夾

9-4 檔案與資料夾處理 在進入基本輸出入和檔案讀寫前,筆者準備先說明java.io套件的File類別,此類別可以處理作業系統的檔案和資料夾,讓Java程式取得指定資料夾的檔案和子資料夾清單、檔案資訊、建立資料夾和刪除檔案等操作。 Java程式處理檔案、資料夾與檔案I/O時,都需要匯入java.io套件,如下所示: import java.io.*;

9-4-1 顯示檔案和資料夾清單-建立File物件 在Java程式只需建立File物件,就可以取得檔案或資料夾的相關資訊,如下所示: File f = new File(String); 上述程式碼建立File物件f,File()建構子參數是檔案或資料夾路徑。

9-4-1 顯示檔案和資料夾清單-相關方法 如果是資料夾,可以進一步使用下列方法取得檔案和資料夾清單,如下表所示:

9-4-2 顯示檔案資訊 File類別提供方法來取得檔案相關資訊,如下表所示:

9-4-3 更改檔名與刪除檔案 在File類別提供方法來刪除檔案、更改檔案或資料夾名稱,如下表所示:

9-4-4 建立資料夾 File類別提供方法可以建立子資料夾,其方法如下表所示:

9-5 Java的輸入/輸出串流 9-5-1 串流的基礎 9-5-2 java.io套件的串流類別 9-5-3 標準輸出與輸入串流

9-5-1 串流的基礎 串流(Stream)觀念最早使用在Unix作業系統,串流模型如同水管的水流,當程式開啟一個來源的輸入串流(例如:檔案、記憶體和緩衝區等),Java程式可以從輸入串流依序讀取資料,如下圖所示:

9-5-2 java.io套件的串流類別-說明 Java的java.io套件提供多種串流類別,基本上,Java串流類別分成兩大類: 「字元串流」(Character Stream) 「位元組串流」(Byte Stream)

9-5-2 java.io套件的串流類別-字元串流 字元串流(Character Stream) 字元串流是Java 1.1版才支援的串流類別,這是一種適合「人類閱讀」(Human-readable)的串流,Reader/Writer兩個類別分別讀取和寫入16位元的字元資料,屬於字元串流的父抽象類別。

9-5-2 java.io套件的串流類別-位元組串流 位元組串流(Byte Stream) 位元組串流是一種「電腦格式」(Machine-formatted)串流,可以讀取和寫入8位元的位元組資料,也就是處理二進位資料的執行檔、圖檔和聲音等,其父抽象類別的輸入/輸出串流名稱為InputStream/OutputStream類別。

9-5-3 標準輸出與輸入串流-說明 Java標準輸出和輸入是指System類別的System.out和System.in子類別,System類別並不屬於java.io套件,而是屬於java.lang套件。 本書的Java程式範例已經大量使用System.out的println()和print()方法來輸出資料,如下所示: System.out.println("…."); System.out.print("…."); 上述程式碼的差別只在是否換行。System.out是PrintStream類別的物件;PrintStream是OutputStream的子類別。System.in則是InputStream類別的物件。

9-5-3 標準輸出與輸入串流-標準輸出 在Java程式將字串輸出到螢幕顯示就是開啟System.out標準輸出的OutputStreamWriter串流,我們可以使用緩衝器類別的BufferedWriter串流來加速資料處理,如下所示: BufferedWriter output = new BufferedWriter( new OutputStreamWriter(System.out)); 程式碼開啟標準輸出串流,BufferedWriter類別是繼承自Writer類別且新增過載方法write()來輸出字串內容。 void write(String) :寫入1個字串 void write(String, int, int) :寫入從第2個參數int索引值開始,長度為第3個參數int的字串

9-5-3 標準輸出與輸入串流-標準輸入 Java程式從鍵盤輸入資料是開啟System.in標準輸出的InputStreamReader串流,我們同樣可以使用緩衝器類別BufferedReader串流來加速資料處理,如下所示: BufferedReader input = new BufferedReader( new InputStreamReader(System.in)); 程式碼開啟標準輸入串流,接著使用Reader類別方法從標準輸入讀取資料,BufferedReader類別是繼承自Reader類別,新增方法readLine() 。 String readLine() :讀取一行文字內容的字串,這一行是使用「\r」、「\n」或「\r\n」結尾

9-6 檔案的讀取與寫入 9-6-1 文字檔案的讀寫 9-6-2 二進位檔案的讀寫 9-6-3 隨機存取檔案的讀寫

9-6-1 文字檔案的讀寫-相關方法 Reader/Writer類別可以處理字元串流的文字檔案讀寫,類別提供一些方法,可以在串流讀取和寫入字元和字元陣列,其說明如下表所示:

9-6-1 文字檔案的讀寫-寫入文字檔案(建立FileWriter) 在Java程式開啟文字檔案是建立FileWriter串流後,使用緩衝器BufferedWriter串流來加速資料處理,如下所示: BufferedWriter output = new BufferedWriter( new FileWriter(file)); 上述程式碼的參數file是檔案路徑字串。

9-6-1 文字檔案的讀寫-寫入文字檔案(寫入字串) BufferedWriter類別繼承Writer類別,新增過載方法write()來輸出字串,然後我們就可以使用write()方法將字串寫入檔案,如下所示: output.write(str1); output.write(str2); 在寫入檔案後,最後可以使用close()方法關閉串流,如下所示: output.close();

9-6-1 文字檔案的讀寫-讀取文字檔案 Java程式開啟檔案是使用FileReader串流,我們一樣可以使用緩衝器BufferedReader串流來加速資料處理,如下所示: BufferedReader input = new BufferedReader( new FileReader(file)); 讀取整個文字檔案內容可以使用while迴圈配合readLine()方法,如下所示: while ( (str1 = input.readLine()) != null ) System.out.println(str1); 上述迴圈檢查讀取的字串是否為null,以判斷是否已經讀到檔尾。

9-6-2 二進位檔案的讀寫-說明 Java I/O是使用位元組串流的InputStream/OutputStream類別來處理二進位檔案的讀取和寫入。在InputStream/OutputStream類別提供對應Reader/Writer類別的方法,可以讀取和寫入位元組和位元組陣列。

9-6-2 二進位檔案的讀寫-相關方法 在InputStream/OutputStream類別提供對應Reader/Writer類別的方法,可以讀取和寫入位元組和位元組陣列,其說明如下表所示:

9-6-2 二進位檔案的讀寫-開啟位元組串流 位元組串流的檔案I/O是開啟FileOutputStream和FileInputStream串流,如下所示: FileOutputStream output = new FileOutputStream(file); ……… FileInputStream input = new FileInputStream(file); 上述2列程式碼分別建立輸出和輸入串流,其來源和輸出都是檔案,參數是file檔案路徑字串。

9-6-2 二進位檔案的讀寫-轉換成字元串流 位元組串流如果需要轉換成字元串流,我們需要使用InputStreamWriter/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); ………

9-6-3 隨機存取檔案的讀寫-說明 在本節之前說明的檔案串流都屬於「循序存取串流」(Sequential Access Streams),只能依序讀取和寫入檔案內容。 「隨機存取檔案」(Random Access File)是使用非順序和隨機方式來存取檔案內容,它如同是一個儲存成檔案的陣列,可以使用索引存取元素,此索引稱為「檔案指標」(File Pointer)。

9-6-3 隨機存取檔案的讀寫-開啟檔案 RandomAccessFile類別因為同時實作DataInput和DataOutput介面,可以使用同一個類別來讀取和寫入檔案,如下所示: RandomAccessFile input, input1; input = new RandomAccessFile(file,"rw"); input1 = new RandomAccessFile(file,"r"); 上述程式碼開啟隨機存取檔案,最後1個參數「rw」表示檔案能夠讀取和寫入,「r」表示只能讀取。

9-6-3 隨機存取檔案的讀寫-開啟檔案 RandomAccessFile類別提供下列方法來處理檔案指標,其說明如下表所示:

End