Submit Search
Upload
Java SE 8 技術手冊第 10 章 - 輸入輸出
•
Download as PPT, PDF
•
6 likes
•
2,589 views
Justin Lin
Follow
瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構 認識Reader、Writer繼承架構 使用輸入輸出裝飾器類別
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 48
Download now
Recommended
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Justin Lin
Java SE 8 技術手冊第 12 章 - Lambda
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
從模組到類別
從模組到類別
Justin Lin
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
資料永續與交換
資料永續與交換
Justin Lin
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
Recommended
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Justin Lin
Java SE 8 技術手冊第 12 章 - Lambda
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
從模組到類別
從模組到類別
Justin Lin
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
資料永續與交換
資料永續與交換
Justin Lin
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
進階主題
進階主題
Justin Lin
2, object oriented programming
2, object oriented programming
ted-xu
5. 建構式、原型與類別
5. 建構式、原型與類別
Justin Lin
資料結構
資料結構
Justin Lin
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
More Related Content
What's hot
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
進階主題
進階主題
Justin Lin
2, object oriented programming
2, object oriented programming
ted-xu
5. 建構式、原型與類別
5. 建構式、原型與類別
Justin Lin
資料結構
資料結構
Justin Lin
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
What's hot
(20)
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
進階主題
進階主題
2, object oriented programming
2, object oriented programming
5. 建構式、原型與類別
5. 建構式、原型與類別
資料結構
資料結構
Ch07 使用 JSTL
Ch07 使用 JSTL
Viewers also liked
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Justin Lin
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期
Justin Lin
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
Justin Lin
JDK8 Functional API
JDK8 Functional API
Justin Lin
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
Justin Lin
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
從 REPL 到 IDE
從 REPL 到 IDE
Justin Lin
Java 8 與 retrolambda
Java 8 與 retrolambda
Justin Lin
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Justin Lin
Python 起步走
Python 起步走
Justin Lin
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Justin Lin
Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論
Justin Lin
Viewers also liked
(16)
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
JDK8 Functional API
JDK8 Functional API
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
從 REPL 到 IDE
從 REPL 到 IDE
Java 8 與 retrolambda
Java 8 與 retrolambda
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Python 起步走
Python 起步走
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論
Similar to Java SE 8 技術手冊第 10 章 - 輸入輸出
輸入輸出
輸入輸出
Justin Lin
13, io
13, io
ted-xu
[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3
ArBing Xie
Io 2
Io 2
Medivh2011
12, string
12, string
ted-xu
CH10:輸入輸出
CH10:輸入輸出
Justin Lin
Java 網路程式
Java 網路程式
PingLun Liao
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
yiditushe
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Angel Boy
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Btrace intro(撒迦)
Btrace intro(撒迦)
ykdsg
Postgre sql intro 0
Postgre sql intro 0
March Liu
使用Dsl改善软件设计
使用Dsl改善软件设计
mingjin
Spark tutorial
Spark tutorial
Lin JiaMing
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
czzz1
与Python一路走来
与Python一路走来
leejd
Python 2-基本語法
Python 2-基本語法
阿Samn的物理課本
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制
Brad Chao
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
Introduction to Nand Flash interface (chinese)
Introduction to Nand Flash interface (chinese)
Sneeker Yeh
Similar to Java SE 8 技術手冊第 10 章 - 輸入輸出
(20)
輸入輸出
輸入輸出
13, io
13, io
[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3
Io 2
Io 2
12, string
12, string
CH10:輸入輸出
CH10:輸入輸出
Java 網路程式
Java 網路程式
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
Btrace intro(撒迦)
Btrace intro(撒迦)
Postgre sql intro 0
Postgre sql intro 0
使用Dsl改善软件设计
使用Dsl改善软件设计
Spark tutorial
Spark tutorial
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
与Python一路走来
与Python一路走来
Python 2-基本語法
Python 2-基本語法
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Introduction to Nand Flash interface (chinese)
Introduction to Nand Flash interface (chinese)
More from Justin Lin
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
Ch04 會話管理
Ch04 會話管理
Justin Lin
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
14. 進階主題
14. 進階主題
Justin Lin
13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
11. 常用內建模組
11. 常用內建模組
Justin Lin
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
9. 資料結構
9. 資料結構
Justin Lin
8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Ch12 Spring 起步走
Ch12 Spring 起步走
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Ch09 整合資料庫
Ch09 整合資料庫
Ch08 自訂標籤
Ch08 自訂標籤
Ch06 使用 JSP
Ch06 使用 JSP
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch04 會話管理
Ch04 會話管理
Ch03 請求與回應
Ch03 請求與回應
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
14. 進階主題
14. 進階主題
13.並行、平行與非同步
13.並行、平行與非同步
12. 除錯、測試與效能
12. 除錯、測試與效能
11. 常用內建模組
11. 常用內建模組
10. 資料永續與交換
10. 資料永續與交換
9. 資料結構
9. 資料結構
8. open() 與 io 模組
8. open() 與 io 模組
Java SE 8 技術手冊第 10 章 - 輸入輸出
1.
2.
輸入輸出 學習目標 • 瞭解串流與輸入輸出的關係 • 認識
InputStream 、 OutputStream 繼承架構 • 認識 Reader 、 Writer 繼承架構 • 使用輸入輸出裝飾器類別
3.
串流設計觀念
4.
串流設計觀念 • 從應用程式角度來看,如果要將資料從來源 取出,可以使用輸入串流,如果要將資料寫 入目的地,可以使用輸出串流 • 輸入串流代表物件為 java.io.InputStream
實例,輸出串流 代表物件為 java.io.OutputStream 實例
5.
串流設計觀念
6.
串流設計觀念 • 來源與目的地都不知道的情況下,如何撰寫 程式?
7.
串流設計觀念 • 在不使用 InputStream
與 OutputStream 時,必須使用 close() 方 法關閉串流 • InputStream 與 OutputStream 實作了 java.io.Closeable 介面,其父介面為 java.lang.AutoCloseable 介面,因此 可使用 JDK7 嘗試自動關閉資源語法
8.
串流設計觀念 • 如果要將某個 案讀入並另存為另一個
案檔 檔 ..
9.
串流設計觀念 • 如果要從 HTTP
伺服器讀取某個網頁,並另 存為 案檔 …
10.
串流設計觀念 • 使用 java.net.ServerSocket
接受客戶 端連線的例子:
11.
串流設計觀念 • 將來學到 Servlet
,想將 案輸出至瀏覽器,檔 也會有類似的操作:
12.
串流繼承架構
13.
串流繼承架構
14.
串流繼承架構 • 記得 System.in
與 System.out ?分別嗎 是 InputStream 與 PrintStream 的實例 … • 較少直接操作 InputStream 相關方法,而 是如先前章節使用 java.util.Scanner 包裹 System.in
15.
串流繼承架構 • 可以使用 System
的 setIn() 方法指定 InputStream 實例,指定標準輸入來源 • 將標準輸入指定為 FileInputStream ,可 以讀取指定 案並顯示在文字模式檔
16.
串流繼承架構 • 若要將 10.1.1
的 Download 範例改為輸出至 標準輸出,也可以這麼寫:
17.
串流繼承架構 • 標準輸出可以重新導向至 案,只要執行程檔 式時使用
> 將輸出結果導向至指定的 案檔 • 如果使用 >> 則是附加訊息
18.
串流繼承架構 • 可以使用 System
的 setOut() 方法指定 PrintStream 實例,將結果輸出至指定的 目的地 • 將標準輸出指定至 案:檔
19.
串流繼承架構 • System.err 為
PrintSteam 實例,稱之 為標準錯誤輸出串流,用來立即顯示錯誤訊 息 • System.out 輸出的訊息可以使用 > 或 >> 重新導向至 案,但檔 System.err 輸出的訊 息一定會顯示在文字模式中,無法重新導向 • 可以使用 System.setErr() 指定 PrintStream ,指定標準錯誤輸出串流
20.
串流繼承架構 • FileInputStream 是
InputStream 的子類,可 以指定 案名稱建構實例,一旦建構 案就開 ,檔 檔 啟 接著就可用來讀取資料 • FileOutputStream 是 OutputStream 的子類 ,可以指定 案名稱建構實例,一旦建構 案就開檔 檔 ,接著就可以用來寫出資料啟 • 無論是 FileInputStream 或 FileOutputStream ,不使用時都要使用 close() 關閉 案檔
21.
串流繼承架構 • FileInputStream 主要實作了 InputStream
的 read() 抽象方法,使之 可從 案中讀取資料檔 • FileOutputStream 主要實作了 OutputStream 的 write() 抽象方法,使 之可寫出資料至 案檔
22.
串流繼承架構 • FileInputStream 、
FileOutputStrea m 在讀取、寫入 案時,是以位元組為單位檔 • 通常會使用一些高階類別加以包裹,進行一 些高階操作,像是 Scanner 與 PrintStream 類別等
23.
串流繼承架構 • ByteArrayInputStream 是 InputStream
的子類,可以指定 byte 陣 列建構實例,一旦建構就可將 byte 陣列當 作資料來源進行讀取 • ByteArrayOutputStream 是 OutputStream 的子類,可以指定 byte 陣 列建構實例,一旦建構將 byte 陣列寫作目 的地寫出資料
24.
串流繼承架構 • ByteArrayInputStream 主要實作了 InputStream
的 read() 抽象方法,使之 可從 byte 陣列中讀取資料 • ByteArrayOutputStream 主要實作了 OutputStream 的 write() 抽象方法,使 之可寫出資料至 byte 陣列
25.
串流處理裝飾器 • InputStream 、
OutputStream 提供串流 基本操作,如果想要為輸入輸出的資料作加 工處理,則可以使用包裹器類別 – 具備緩衝區作用的 BufferedInputStream 、 BufferedOutputStream – 具備資料轉換處理作用的 DataInputStream 、 DataOutputStream – 具備物件序列化能力的 ObjectInputStream 、 ObjectOutputStream
26.
串流處理裝飾器
27.
串流處理裝飾器 • 如果傳入 IO.dump()
的是 FileInputStream 、 FileOutputStrea m 實例,每次 read() 時都會要求讀取硬碟 ,每次 write() 都會要求寫入硬 ,這會碟 花費許多時間在硬 定位上碟
28.
串流處理裝飾器 • BufferedInputStream 與 BufferedOutputStream
主要於內部提供 緩衝區功能 • 建構 BufferedInputStream 、 BufferedOut putStream 必須提供 InputStream 、 OutputStream 進行包裹 ,可以使用預設或自訂緩衝區大小
29.
串流處理裝飾器
30.
串流處理裝飾器 • DataInputStream 、
DataOutputStrea m 提供讀取、寫入 Java 基本資料型的方法 ,像是讀寫 int 、 double 、 boolean 等 的方法
31.
32.
33.
串流處理裝飾器 • ObjectInputStream 提供
readObject() 方法 將資料讀入為物件,而 ObjectOutputStream 提 供 writeObject() 方法將物件寫至目的地 • 可以被這兩個方法處理的物件,必須實作 java.io.Serializable 介面,這個介面並沒有 定義任何方法,只是作為標示之用,表示這個物件 是可以序列化的( Serializable )
34.
35.
36.
串流處理裝飾器 • 如果在作物件序列化時,物件中某些資料成 員不希望被寫入,則可以標上 transient 關鍵字
37.
Reader 與 Writer
繼承架構
38.
Reader 與 Writer
繼承架構 • 在不使用 Reader 與 Writer 時,必須使用 close() 方法關閉串流,由於 Reader 與 Writer 實作了 Closeable 介面,其父介 面為 AutoCloseable 介面,因此可使用 JDK7 嘗試自動關閉資源語法
39.
Reader 與 Writer
繼承架構
40.
Reader 與 Writer
繼承架構
41.
Reader 與 Writer
繼承架構 • 若要使用 CharUtil.dump() 讀入 案、轉檔 為字串並顯示在文字模式中…
42.
Reader 與 Writer
繼承架構 • FileReader 、 FileWriter 可以對 案檔 作讀取與寫入,讀取或寫入時預設會使用作 業系統預設編碼來作字元轉換 • 在 動啟 JVM 時,可指定 - Dfile.encoding 來指定 FileReader 、 FileWriter 所使用的編碼
43.
Reader 與 Writer
繼承架構 • FileReader 、 FileWriter 沒有可以指 定編碼的方法 • 如果在程式執行過程中想要指定編碼,則必 須使用 InpuStreamReader 、 OutputStreamWr iter
44.
字元處理裝飾器 • 想要將位元組資料轉換為對應的編碼字元, 可以使用 InputStreamReader 、
OutputStreamW riter 對串流資料資料包裹 • 在建立 InputStreamReader 與 OutputStreamWriter 時,可以指定編碼 ,如果沒有指定編碼,則以 JVM 動時所獲啟 取的預設編碼來作字元轉換
45.
字元處理裝飾器
46.
字元處理裝飾器 • 想以 UTF-8
處理字元資料,例如讀取 UTF-8 的 Main.java 文字 案,並另存為檔 UTF-8 的 Main.txt 文字 案檔 …
47.
字元處理裝飾器 • BufferedReader 、
BufferedWriter 可 對 Reader 、 Writer 提供緩衝區作用 • JDK 1.4 之前,標準 API 並沒有 Scanner 類 別,若要在文字模式下取得使用者輸入的字 串,會如下撰寫:
48.
字元處理裝飾器 • PrintWriter 與
PrintStream 使用上極 為類似,除了可以對 OutptStream 包裹之 外, PrintWriter 還可以對 Writer 進行 包裹,提供 print() 、 println() 、 format() 等方 法
Download now