PipedOutputStream
java.lang.Object
|—java.io.OutputStream
|—|—java.io.PipedOutputStream
public class PipedOutputStream
extends OutputStream
管道输出流可以连接到管道输入流以创建通信管道。 管道输出流是管道的发送端。 通常,数据由一个线程写入 PipedOutputStream 对象,数据由其他线程从连接的 PipedInputStream 读取。 不建议尝试从单个线程中使用这两个对象,因为它可能会使线程死锁。 如果从连接的管道输入流中读取数据字节的线程不再活动,则称该管道已损坏。
Since:
JDK1.0
构造函数摘要
构造函数 | 描述 |
---|---|
PipedOutputStream() | 创建尚未连接到管道输入流的管道输出流。 |
PipedOutputStream(PipedInputStream snk) | 创建连接到指定管道输入流的管道输出流。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | close() | 关闭此管道输出流并释放与此流关联的任何系统资源。 |
void | connect(PipedInputStream snk) | 将此管道输出流连接到接收器。 |
void | flush() | 刷新此输出流并强制写出任何缓冲的输出字节。 |
void | write(byte[] b, int off, int len) | 将指定字节数组中的 len 个字节从偏移量 off 处开始写入此管道输出流。 |
void | write(int b) | 将指定的字节写入管道输出流。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从类 java.io.OutputStream 继承的方法 |
---|
write |
构造函数详细信息
PipedOutputStream
public PipedOutputStream(PipedInputStream snk) throws IOException
创建连接到指定管道输入流的管道输出流。 写入此流的数据字节将作为 snk 的输入提供。
参数:
参数名称 | 参数描述 |
---|---|
snk | 要连接的管道输入流。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
PipedOutputStream
public PipedOutputStream()
创建尚未连接到管道输入流的管道输出流。 在使用之前,它必须由接收方或发送方连接到管道输入流。
方法详情
connect
public void connect(PipedInputStream snk) throws IOException
将此管道输出流连接到接收器。 如果此对象已连接到其他管道输入流,则会引发 IOException。
如果 snk 是未连接的管道输入流并且 src 是未连接的管道输出流,则它们可以通过以下任一调用连接:
src.connect(snk)
或调用:
snk.connect(src)
这两个调用具有相同的效果。
参数:
参数名称 | 参数描述 |
---|---|
snk | 要连接的管道输入流。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(int b) throws IOException
将指定的字节写入管道输出流。
实现OutputStream的write方法。
指定者:
写在类 OutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 要写入的字节。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果管道损坏、未连接、关闭或发生 I/O 错误。 |
write
public void write(byte[] b, int off, int len) throws IOException
将指定字节数组中的 len 个字节从偏移量 off 处开始写入此管道输出流。 此方法阻塞,直到所有字节都写入输出流。
覆盖:
写在类 OutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 数据。 |
off | 数据中的起始偏移量。 |
len | 要写入的字节数。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果管道损坏、未连接、关闭或发生 I/O 错误。 |
flush
public void flush() throws IOException
刷新此输出流并强制写出任何缓冲的输出字节。 这将通知任何读者字节正在管道中等待。
指定者:
在接口 Flushable 中刷新
覆盖:
类 OutputStream 中的刷新
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
close
public void close() throws IOException
关闭此管道输出流并释放与此流关联的任何系统资源。 此流可能不再用于写入字节。
指定者:
在接口 AutoCloseable 中关闭
指定者:
在接口Closeable中关闭
覆盖:
在类 OutputStream 中关闭
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |