iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0

Java的IO可分為以下幾類。

一.處理byte的類別有:

1.InputStream, 可作為input使用, 主要的子類別有:

ByteArrayInputStream, 讀入來源為byte array
FileInputStream, 讀入來源為File
ObjectInputStream, 將其他InputStream加工後, 可用來讀入Object
DataInputStream, 將其他InputStream加工後, 可用來讀入int, float, double, boolean, bye, char等基本資料型態

2.OutputStream, 可作為input使用, 主要的子類別有:

ByteArrayOutputStream, 輸出到byte array
FileOutputStream, 輸出到File
ObjectOutputStream, 將其他OutputStream加工後, 可用來輸出Object
DataOutputStream, 將其他OutputStream加工後, 可用來寫出int, float, double, boolean, bye, char等基本資料型態
PrintStream, 可將各種基本資料型態和字串以文字形式輸出, System.out就是一個PrintStream

二.處理char的類別有:

1.Reader, 作為char輸入, 具有將輸入編碼轉為Unicode編碼的能力, 主要的子類別有:

BufferedReader, 具有緩衝功能, 可讓IO比較有效率
CharArrayReader, 由某個字元陣列作為輸入
InputStreamReader, 作為InputStream轉為Reader的介面
FileReader, 由檔案讀入char

2.Writer, 作為char輸出, 具有將Unicode編碼轉為輸出編的能力, 主要的子類別有:

BufferedWriter, 具有緩衝功能, 可讓IO比較有效率
CharArrayWriter, 輸出到某個字元陣列
OutputStreamWriter, 作為Writer轉到OutputStream的介面
FileWriter, 將char輸出到檔案

三.處理檔案的類別有:

File, 具有新增刪除檔案, 查詢檔案長度, 查詢檔案屬性, 查詢路徑等功能。

I/O 以連接的節點(Node)、傳送的資料型態、以及輸入/輸出來區分通常做位元組傳輸,會叫做Stream

,以常見的字串傳輸,會叫做Reader/Writer,舉例來說,FileInputStream是做檔案位元輸入的類別;InputStreamReader是做字串輸入的類別,Pipe是比較特殊的用途。

字串處理的I/O被分離在Reader和Writer類別底下,其他的都直接繼承了InputStream、OutputStream

不論是哪一種傳輸,都是以節點(Node)做為起點或終點,做出Stream這樣的動作,Stream就如同字面上的意思,像水流一樣,有開有關,當Read()或write()方法被呼叫時,串流就會開啟,直到close()被呼叫為止。有時候串流會有保護同時只開放一個程序使用,因此必須記得close()串流,避免其他程序無法使用。


上一篇
JAVA--GUI 圖形介面程式
下一篇
JAVA的輸入
系列文
JAVA30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言