Java Java.io.PipedInputStream.read() 方法

  • 描述

    java.io.PipedInputStream.read(byte[] b int off, int len)方法从此管道输入流中将最多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.jc2182;
    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