java中對於輸入和輸出的一個簡單概念瞭解
在I/O中有著“流”的抽象概念,它代表任何有能力產出資料的資料來源物件或者是有能力接收資料的接收端物件。
Java類庫中的I/O類分成輸入和輸出兩部分。
輸入:
通過繼承,任何自Inputstream或Reader派生而來的類都含有名為read()的基本方法,用於讀取單個位元組或者字元陣列。
輸出:
任何自OutputStream或Writer派生而來的類都含有名為write()的基本方法,用於寫單個位元組或者字元陣列。
InputStream型別
InputStream的作用是用來表示那些從不同資料來源產生輸入的類。這些資料來源包括:
1)位元組陣列
2)String物件
3)檔案
4)“管道”,工作方式與實際管道相似,即,從一端輸入,從另一端輸出。
5)一個由其他種類的流組成的序列,以便我們可以將它們收集合併到一個流內。
6)其他資料來源,如Internet連線等。
類 | 功能 | 構造器引數/如何使用 |
ByteArrayInputStream | 允許將記憶體的緩衝區當作InputStream使用 | 緩衝區,位元組將從中取出 作為一種資料來源:將其與FilterInputStream物件相連以提供有用介面 |
StringBufferInputStream | 將String轉換成InputStream | 字串。底層實現實際使用StringBuffer 作為一種資料來源:將其與FilterInputStream物件相連以提供有用介面 |
FileInputStream | 用於從檔案中讀取資訊 | 字串,表示檔名、檔案或FileDescriptor物件 作為一種資料來源:將其與FilterInputStream物件相連以提供有用介面 |
PipedInputStream | 產生用於寫入相關PipedOutput Stream的資料。實現管道化概念 | PipedOutputStream 作為多執行緒中的資料來源:將其與FilterInputStream物件相連以提供有用介面 |
SequenceInputStream | 將兩個或多個InputStream物件轉換成單一InputStream | 兩個InputStream物件或一個容納InputStream物件的容器Enumeration 作為一種資料來源:將其與FilterInputStream物件相連以提供有用介面 |
FilterInputStream | 抽象類,作為“裝飾器”的介面。其中,“裝飾器”為其他的InputStream類提供有用功能。 | 將在以後的學習中再詳細敘述 |
OutputStream型別
類 | 功能 | 構造器引數/如何使用 |
ByteArrayOutputStream | 在記憶體中建立緩衝區。所有送往“流”的資料都要放置在此緩衝區 | 緩衝區初始化尺寸(可選) 用於指定資料的目的地:將其與FilterOutputStream物件相連以提供有用介面 |
FileOutputStream | 用於將資訊寫至檔案 | 字串,表示檔名、檔案或FileDescriptor物件 指定資料的目的地:將其與FilterOutputStream物件相連以提供有用介面 |
PipedOutputStream | 任何寫入其中的資訊都會自動作為相關PipedInputStream的輸出。實現“管道化”概念。 | PipedInputStream 指定用於多執行緒的資料的目的地:將其與FilterOutputStream物件相連以提供有用介面 |
FilterOutputStream | 抽象類,作為“裝飾器”的介面。其中,“裝飾器”為其他OutputStream提供有用功能。 | 將在以後的學習中再詳細敘述 |