|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.io
类 PipedInputStream
java.lang.Object java.io.InputStream java.io.PipedInputStream
- 所有已实现的接口:
- Closeable
-
public class PipedInputStream
- extends InputStream
传送输入流应该连接到传送输出流;传送输入流会提供要写入传送输出流的所有数据字节。通常,数据由某个线程从 PipedInputStream
对象读取,并由其他线程将其写入到相应的 PipedOutputStream
。不建议对这两个对象尝试使用单个线程,因为这样可能会死锁该线程。传送输入流包含一个缓冲区,可在缓冲区限定的范围内将读操作和写操作分离开。
- 从以下版本开始:
- JDK1.0
- 另请参见:
-
PipedOutputStream
字段摘要 | |
---|---|
protected byte[] |
buffer 放置传入数据的循环缓冲区。 |
protected int |
in 循环缓冲区中的位置索引,当从连接的传送输出流中接收到下一个数据字节时,会将其存储到该缓冲区。 |
protected int |
out 循环缓冲区中的位置索引,此传送输入流将从该缓冲区读取下一个数据字节。 |
protected static int |
PIPE_SIZE 管道的循环输入缓冲区的大小。 |
构造方法摘要 | |
---|---|
PipedInputStream() 创建尚未连接的 PipedInputStream 。 |
|
PipedInputStream(PipedOutputStream src) 创建 PipedInputStream ,以使其连接到传送输出流 src 。 |
方法摘要 | |
---|---|
int |
available() 返回可以不受阻塞地从此输入流中读取的字节数量。 |
void |
close() 关闭此传送输入流并释放与该流相关的所有系统资源。 |
void |
connect(PipedOutputStream src) 使此传送输入流连接到传送输出流 src 。 |
int |
read() 读取此传送输入流中的下一个数据字节。 |
int |
read(byte[] b, int off, int len) 将最多 len 个数据字节从此传送输入流读入字节数组。 |
protected void |
receive(int b) 接收数据字节。 |
从类 java.io.InputStream 继承的方法 |
---|
mark, markSupported, read, reset, skip |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
PIPE_SIZE
protected static final int PIPE_SIZE
-
管道的循环输入缓冲区的大小。
- 从以下版本开始:
- JDK1.1
- 另请参见:
- 常量字段值
buffer
protected byte[] buffer
-
放置传入数据的循环缓冲区。
- 从以下版本开始:
- JDK1.1
in
protected int in
-
循环缓冲区中的位置索引,当从连接的传送输出流中接收到下一个数据字节时,会将其存储到该缓冲区。
in<0
意味着缓冲区为空,in==out
意味着缓冲区已满- 从以下版本开始:
- JDK1.1
out
protected int out
-
循环缓冲区中的位置索引,此传送输入流将从该缓冲区读取下一个数据字节。
- 从以下版本开始:
- JDK1.1
构造方法详细信息 |
---|
PipedInputStream
public PipedInputStream(PipedOutputStream src) throws IOException
-
创建
PipedInputStream
,以使其连接到传送输出流src
。写入src
的数据字节稍后将用作此流的输入。- 参数:
-
src
- 要连接的流。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
PipedInputStream
public PipedInputStream()
-
创建尚未连接的
PipedInputStream
。必须在使用之前将其连接到PipedOutputStream
。
方法详细信息 |
---|
connect
public void connect(PipedOutputStream src) throws IOException
-
使此传送输入流连接到传送输出流
src
。如果此对象已经连接到其他某个传送输出流,则抛出IOException
。如果
src
为未连接的传送输出流,snk
为未连接的传送输入流,则可以通过以下任一调用使其连接:snk.connect(src)
或:
src.connect(snk)
这两个调用的效果相同。
-
- 参数:
-
src
- 要连接的传送输出流。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
receive
protected void receive(int b) throws IOException
- 接收数据字节。如果不存在可用的输入,此方法将发生阻塞。
-
- 参数:
-
b
- 正接收的字节 - 抛出:
-
IOException
- 如果传送管道损坏。 - 从以下版本开始:
- JDK1.1
read
public int read() throws IOException
-
读取此传送输入流中的下一个数据字节。返回
0
到255
范围内的int
字节值。如果因流的末尾已到达而没有可用的字节,则返回值-1
。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。如果某个线程正向连接的传送输出流提供数据字节,但该线程不再处于活动状态,则抛出IOException
。 -
- 指定者:
-
类
InputStream
中的read
-
- 返回:
-
下一个数据字节,如果到达流的末尾,则返回
-1
。 - 抛出:
-
IOException
- 如果传输管道损坏。