16-2Java串流类别架构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
16-2Java串流类别架构

第 16 章 資料輸入與輸出 本章提要 16-1 甚麼是串流? 16-2 Java 串流類別架構 16-3 輸出、輸入資料 16-4 物件的讀寫 16-5 綜合演練 前言 在本章之前, 我們已多次用 import java.io.* 敘述匯入 Java 的 I/O (資料輸入與輸出) 套件, 並使用其中的 BufferedReader 類別的 readLine() 方法從鍵盤讀取使用者輸入的資料, 以及用 System.out.println() 方法在螢幕上顯示訊息或輸出程式執行的結果。 前言 但 java.io 套件的功能可不僅止於此, 舉凡從電腦的螢幕、鍵盤等各種裝置輸出或輸入資料, 或是讀寫電腦中的文字檔、二元檔 (binary file), 甚至是讀寫 ZIP 格式的壓縮檔, 都可透過 java.io 套件中的類別來完成。本章就要來介紹 Java 的資料輸入與輸出架構, 以及如何使用 java.io 套件的各項 I/O 類別。 16-1 甚麼是串流? 為了簡化程式設計人員處理 I/O 的動作, 不管讀取資料或寫入資料的來源/目的為何 (檔案、網路、或記憶體等等), 都是以串流 (stream) 的方式進行資料的讀取與寫入。而串流就是形容資料像一條河流一樣, 將資料依序從資料來源中流出, 或是流入目的地中。 甚麼是串流? 甚麼是串流? 在 java.io 套件中, 所有的資料輸出入類別都是以串流的方式來操作資料, 不管讀取或寫入, 都離不開以下三個基本動作: 開啟串流 (建構串流物件) 從串流讀取資料、或將資料寫入串流 關閉串流 甚麼是串流? 從程式的觀點, 可供程式讀取的資料來源稱為輸入串流 (input stream);而可用來寫入資料的則稱為輸出串流 (output stream)。不管我們是從磁碟 (檔案)、網路 (URL) 或其它來源或目的建立串流物件, 讀寫的方式都相似, Java 已替我們將其間的不同隱藏起來, 讓我們可以用一致的方式來操作串流, 大幅簡化學習過程。 16-2 Java 串流類別架構 在 java.io 套件中, 共有 4 組串流類別, 這 4 組類別可分為兩大類: 以 byte 為處理單位的輸出入串流, 又可稱之為位元串流 (Byte Streams) 以 char 為處理單位的輸出入串流, 又可稱之為字元串流 (Character Streams) 位元串流 位元串流是以 8 位元的 byte 為單位進行資料的讀寫, 位元串流有兩個最上層的抽像類別:InputStream (輸入) 及 OutputStream (輸出)。所有的輸出入位元串流都是由這兩個類別衍生出來的, 例如我們已用過很多次的 System.out, 它是個 java.io.PrintStream 類別的物件, 此類別是 FilterOutputStream 的子類別, 而 FilterOutputStream 則是 OutputStream 的子類別。 位元串流 關於位元串流的主要類別, 請參見以下的類別圖: 位元串流 位元串流 每種類別都適合於某類的讀取或寫入的動作, 例如 ByteArrayInputStream 適用於讀取位元陣列;FileOutputStream 則適用於寫入檔案。 另外比較特別的是 ObjectIntputStream 和ObjectOutputStream, 這兩個串流類別是特別為了讀寫我們自訂類別的物件而設計, 其詳細用法會在 16-4 節中介紹。 位元串流 這些串流類別的讀/ 寫方法都有個共通的特性, 就是它們的原型宣告都註明 throws IOException, 所以使用這些方法時, 要記得用 try/catch 來執行, 或是在您的方法宣告也加上 throws IOException 的註記, 將例外拋給上層。 字元串流 字元串流是以 16 位元的 char 為單位進行資料的讀寫, 字元串流同樣有兩個最上層的抽像類別 Reader、Writer, 分別對應於位元串流的 InputStream、OutputStream。這類串流類別主要是因應國際化的趨勢, 為方便處理 16 位元的Unicode 字元而設的, 而且字元串流也會自動分辦資料中的 8 位元 ASCII 字元和 Unicode 字元, 不會將兩種資料弄混。 字元串流 字元串流類別的架構和位元串流有些類似, 而且其中各類別、方法的用法也都和位元串流中對應的類別、方法相似, 所以學會一種用法就等於學會兩種。不過 Reader、Writer 的衍生類別數量較少: 字元串流 字元串流 16-3 輸出、輸入資料 標準輸出、輸入 檔案輸出、輸入 讀寫二元檔 標準輸出、輸入 所謂標準輸出一般就是指螢幕, 而標準輸入則是指鍵盤, 在前幾

文档评论(0)

18273502 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档