# Java.io.PipedInputStream类 - Java.io包 **Java.io.PipedInputStream**类是一个管道输入流,可以连接到一个管道输出流,管道输入流提供的所有数据字节写入管道输出流。以下是有关PipedInputStream的要点: * 该管道输入流包含一个缓冲区,解耦读操作和写操作限制之内。 * 不推荐试图从单个线程使用这两个对象,因为它可能会死锁的线程。 * 管道,如果被提供的数据字节连接的管道输出流线程不再处于活动状态被打破。 ## 类声明 以下是java.io.PipedInputStream类的声明: ``` public class PipedInputStream extends InputStream ``` ## 字段 以下是java.io.PipedInputStream类中的字段: * protected byte[] buffer -- 一个循环缓冲区在其中输入数据被放置。 * protected int in -- 在循环缓冲区的数据的下一个字节从连接的管道输出流中接收时将存储的位置的索引。 * protected int out -- 在循环缓冲区的位置,在该数据的下一个字节将通过这个管道输入流中读取的索引。 * protected static int PIPE_SIZE -- 管道的循环输入缓冲区的默认大小。 ## 类构造函数 | S.N. | 构造函数 & 描述 | | --- | --- | | 1 | **PipedInputStream() ** 这创建了一个管道输入流,以便它尚未连接。 | | 2 | **PipedInputStream(int pipeSize) ** 这创建了一个管道输入流,以便它尚未连接,并使用指定的管道大小为管道缓冲区。 | | 3 | **PipedInputStream(PipedOutputStream src) ** 这将创建一个管道输入流,使其连接到管道输出流src中。 | | 4 | **PipedInputStream(PipedOutputStream src, int pipeSize) ** 这创建了一个管道输入流,以便它被连接到管道输出流src和使用指定的管道尺寸为管道缓冲区。 | ## 类方法 | S.N. | 方法 & 描述 | | --- | --- | | 1 | [int available() ](http://www.yiibai.com/java/io/pipedinputstream_available.html) 此方法返回可以从此输入流中可无阻塞读取的字节数。 | | 2 | [void close() ](http://www.yiibai.com/java/io/pipedinputstream_close.html) 此方法关闭此管道输入流并释放与该流关联的所有系统资源。 | | 3 | [void connect(PipedOutputStream src) ](http://www.yiibai.com/java/io/pipedinputstream_connect.html) 此方法使该管道输入流连接到管道输出流src中。 | | 4 | [int read() ](http://www.yiibai.com/java/io/pipedinputstream_read.html) 此方法从这个管道输入流中读取下一个数据字节。 | | 5 | [int read(byte[] b, int off, int len) ](http://www.yiibai.com/java/io/pipedinputstream_read_byte.html) 此方法读取了从该管道输入流中len个字节数据到一个字节数组。 | | 6 | [protected void receive(int b)](http://www.yiibai.com/java/io/pipedinputstream_receive.html) 这个方法接收一个字节的数据。 | ## 继承的方法 这个类继承自以下类方法: * Java.io.InputStream * Java.io.Object