位置:首頁 > Java技術 > Java.io包 > java.io.PipedInputStream.read(byte[] b int off, int len)方法實例

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