首頁 > 其他

Java高階[6]:輸入輸出流中的其他流類

2019-12-10 21:23:30

在Java中的輸入流與輸出流中還有許多流類。這些流包括管道流、ByteInputStream和ByteOutputStream、System.in和System.out、還有列印流等等


1

管道流主要用於連線兩個執行緒間的通訊。管道流也分為位元組流(PipedInputStream、PipedOutputStream)和字元流(PipedReader、PipedWriter)。

2

一個PipedInputStream物件必須和一個PipedOutputStream物件相連線產生一個管道。其中PipedInputStream可以讀管道中的資料,PipedOutputStream可以向管道中寫資料

3

下面,我們來看一下,管道流的使用,程式碼及結果如下圖中:




1

ByteArrayInputStream是輸入流的一種實現。它有兩個構造方法,每個方法都需要一個位元組陣列來作為其資料源。

2

構造方法如下:ByteArrayInputStream(byte[] buf);ByteArrayInputStream(byte[] buf,int offset,int length);ByteArrayOutputStream();ByteArrayOutputStream(int);

3

如果程式在執行的過種中要產生一些臨時檔案,可以採用虛擬檔案方式實現,上述兩個類可以實現類似記憶體虛擬檔案的功能。

4

下面,我們來看一下這兩個類的使用。程式碼及結果如下:


1

System.in和System.out分別對應於鍵盤和顯示器。in是用於該讀取從鍵盤上輸入的資料。System.out對應於顯示器,屬於PrintStream(列印流),將資料輸出到顯示器。

1

PrintStream類提供了一系列的print和println方法,可以實現將基本資料型別格式轉換成字串輸出。

2

PrintStream有以下幾個構造方法:PrintStream(OutputStream out);PrintStream(OutputStream out,boolean autoflush);PrintStream(OutputStream out,boolean autoflush,String encoding);

3

IO包中提供了一個與PrintStream對應的PrintWriter類,有以下幾個構造方法:PrintWriter(OutputStream out);PrintWriter(OutputStream out,boolean autoflush);PrintWriter(Writer w);PrintWriter(Writer w,boolean autoflush);

IT145.com E-mail:sddin#qq.com