java.io.PipedInputStream.read(byte[] b int off, int len)方法實例
java.io.PipedInputStream.read(byte[] b int off, int len) 方法從該管道輸入流中讀取len個字節數據到一個字節數組。如果已到達數據流的末尾,或將被讀取如果len超出管道緩衝區大小。如果len為0,則讀取任何字節並返回0;否則,該方法將阻塞,直到輸入最少1個字節可用,檢測到流的末尾,或者拋出一個異常。
聲明
以下是java.io.PipedInputStream.read()方法的聲明
public int read(byte[] b, int off, int len)
參數
-
b -- 數據被讀出緩衝器中。
-
off -- 在目標數組b的偏移開始。
-
len -- 讀出最大字節。
返回值
此方法返回讀入緩衝區的總字節數,或-1,如果冇有更多的數據,因為數據流已到達末尾。
異常
-
NullPointerException -- 如果 b 是 null.
-
IndexOutOfBoundsException -- 如果off為負和len為負,或len大於b.length - off
-
IOException -- 如果管道損壞,未連接,關閉,或者發生I/ O錯誤。
例子
下麵的示例演示java.io.PipedInputStream.read()方法的用法。
package com.yiibai; import java.io.*; public class PipedInputStreamDemo { public static void main(String[] args) { // create a new Piped input and Output Stream PipedOutputStream out = new PipedOutputStream(); PipedInputStream in = new PipedInputStream(); try { // connect input and output in.connect(out); // write something out.write(70); out.write(71); // read what we wrote into an array of bytes byte[] b = new byte[2]; in.read(b, 0, 2); // print the array as a string String s = new String(b); System.out.println("" + s); } catch (IOException ex) { ex.printStackTrace(); } } }
讓我們編譯和運行上麵的程序,這將產生以下結果:
FG