PipedInputStream和PipedOutputStream的使用例子
时间: 2023-10-22 14:24:39 浏览: 92
管道流PipedStream应用举例
下面是使用PipedInputStream和PipedOutputStream的简单示例:
```java
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class PipedExample {
public static void main(String[] args) {
try {
// 创建PipedInputStream和PipedOutputStream对象
PipedInputStream pipedInputStream = new PipedInputStream();
PipedOutputStream pipedOutputStream = new PipedOutputStream();
// 将输入流和输出流连接起来
pipedInputStream.connect(pipedOutputStream);
// 创建一个线程用于写入数据到PipedOutputStream
Thread writerThread = new Thread(() -> {
try {
String message = "Hello, World!";
pipedOutputStream.write(message.getBytes());
pipedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
});
// 创建一个线程用于从PipedInputStream读取数据
Thread readerThread = new Thread(() -> {
try {
byte[] buffer = new byte[1024];
int bytesRead = pipedInputStream.read(buffer);
while (bytesRead != -1) {
System.out.println(new String(buffer, 0, bytesRead));
bytesRead = pipedInputStream.read(buffer);
}
pipedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
});
// 启动线程
writerThread.start();
readerThread.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述示例中,我们首先创建了一个PipedInputStream对象和一个PipedOutputStream对象,并通过调用`connect()`方法将它们连接起来。然后,我们创建一个写线程,使用`write()`方法将字符串数据写入PipedOutputStream中,并在写入完成后关闭流。接下来,我们创建一个读线程,使用`read()`方法从PipedInputStream中读取数据,并在读取完成后关闭流。最后,我们启动这两个线程,观察输出结果。
当我们运行这个示例时,你会看到控制台输出了`Hello, World!`这个字符串。这个字符串是通过PipedOutputStream写入的,并通过PipedInputStream读取的。
阅读全文