Java —— 流的基本概念

Alex_McAvoy發表於2018-10-23

【概述】

流(stream)是一組有序的資料序列,IO 流用於處理裝置之間的資料傳輸,Java 中對於資料的輸入輸出均是以流的方式進行,在 java.io 包下提供了各種流類與介面,用於獲取不同種類的資料,並通過標準的方法輸入輸出資料 。

【輸入與輸出】

輸入(input):讀取磁碟、光碟等外部儲存裝置的資料到程式(記憶體)中

輸出(output):將程式資料輸出到磁碟、光碟等外部儲存裝置中

【流的分類】

根據運算元據單位的不同,分為:位元組流(8 bits)、字元流(16 bits)

根據資料流的流向,分為:輸入流、輸出流

根據流的角色的不同,分為:節點流(直接作用於檔案上)、處理流(作用在已有的節點流之上)

Java 的流類共涉及 40 多個類,實際都是通過以下 4 個抽象基類派生的,由以下 4 個抽象基類派生出的子類名稱都是以其父類名作為子類名字尾。

抽象基類 位元組流 字元流
輸入流 InputStream Reader
輸出流 OutputStream Writer

1.位元組流

位元組流分為輸入位元組流、輸出位元組流。

InputStream 類是位元組輸入流的抽象類,它是所有位元組輸入流的父類,InputStream 中存在多個子類,它們實現了不同的資料輸入流。

OutputStream 類是位元組輸出流的抽象類,它是所有位元組輸出流的父類,OutputStream 中存在多個子類,它們實現了不同的資料輸出流。

2.字元流

字元流分為輸入字元流、輸出字元流。

Reader 類是字元輸入流的抽象類,所有字元輸入流的實現都是它的子類。

Writer 類是字元輸出流的抽象類,所有字元輸出流的實現都是它的子類。

3.劃分

  抽象基類 節點流 緩衝流 轉換流 資料流 物件流 列印流
位元組流 InputStream FileInputStream BufferedInputStream   DataInputStream ObjectInputStream PrintStream
OutputStream FileOutputStream BufferedOutputStream   DataOutputStream ObjectOutputStream
字元流 Reader FileReader BufferedReader InputStreamReader     PrintWriter
Writer FileWriter BufferedWr OutputStreamWriter    

相關文章