Java的輸出入套件

作者 | 2016-03-26

介紹Java的網路程式設計方法與類別,一個只能夠在手機上運作的應用程式是不夠的,與外部溝通、互動是現今常見的應用,一個應用程式能夠連線、對戰、同盟、成績與級數,都需要網路程式設計。

Java的輸出入套件

Java 語言提供許多類別做為 I/O(Input/Output)輸入與輸出,這些類別都放置在 java.io 類別庫中,可以將輸出入的類別想像成「管路」,不同的管路可供處理不同的需求功能,而某些類別還可以串接起來,成為更有效率的處理機制。

輸出入類別

Java 語言提供許多類別做為 I/O(Input/Output)輸入與輸出,這些類別都放置在 java.io 類別庫中,讀者可以將輸出入的類別想像成「管路」,不同的管路可供處理不同的需求功能,而某些類別還可以串接起來,成為更有效率的處理機制。

java.io.InputStream

InputStream 是以 byte 為單位的輸入串流(stream)類別,用來處理輸入的資料通道,事實上InputStream 是「抽象類別(abstract class)」,它訂立了一個類別群組的方法規格,讓同類型的類別繼承它,以遵循既定的規範來設計該群組的其他的類別。

java.io.OutputStream

OutputStream 是以 byte為單位的輸出串流(stream)類別,用來處理輸出的資料通道,OutputStreamInputStream 一樣, 都是「 抽象類別(abstract class)」。

java.io.Reader

Reader 是以 char 為單位的輸入串流(stream)類別,用來處理輸入的資料通道,Reader 是「抽象類別(abstract class)」,定義了輸入類別應使用的方法規範。最常用的類別是 BufferedReader,它提供了具緩衝效果的輸出功能,其中最常用的方法是 readLine(),可有效率地一次讀取一行資料。

java.io.Writer

Writer 是以 char 為單位的輸出串流(stream)類別,用來處理輸出的資料通道,Writer 是「抽象類別(abstract class)」,定義了輸出類別應使用的方法規範。

byte轉換為char

在處理輸出入或網路之類的程式開發過程,有時會遇到只能取得 byte 串流物件的情形,這類情形尤其會在網路程式設計時出現。前面說到到 byte 串流的方法所提供的功能有限,當想要較有效率的處理資料流時,如讀取一行資料,得到字串時,可將 byte 串流(stream)轉換為 char 類型的 Reader Writer

InputStreamReader OutputStreamWriter 類別屬於「由 byte 轉成 char」的中繼接頭。舉例來說,在處理資料輸入時,資料來源的 InputStream 像是小口徑的水管,而我們希望能將小水管轉換為大口徑的BufferedReader 這類大水管時,可利用 InputStreamReader 這類轉換器,將 InputStream 轉換為Reader,如下圖:

io1

假設資料來源是FileInputStream(byte 串 流 ),可將串流物件給予InputStreamReader 的建構子,得到Reader 物件:

FileInputStream fis = new FileInputStream(“data.txt”);

InputStreamReader isr = new InputStreamReader(fis);

這是常見的轉換方法,雖然多出二行程式碼,但後續的處理也比單純使用InputStream 來處理資料方便得多。

BufferedReader in =new BufferedReader( isr );

 

相關文章:

Category: Java

關於 Hank Tom

專長為程式語言、雲端服務開發,Linux系統管理, 任職:利拓科技 技術長,海林行動科技 技術總監 輔仁大學 兼任助理教授 ,為 Android高效入門>深度學習、CentOS 7建置、管理與伺服器架設實戰、Java網路程式設計、雲端網頁程式設計-Google App Engine應用實作 等書作者

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *