java io之管道流

简介:   一、java.io中存在一中流叫管道流,类似管道的功能。PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流。这个两个流必须同时使用。  二、作用:进行两个线程间的通信。

  一、java.io中存在一中流叫管道流,类似管道的功能。PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流。这个两个流必须同时使用。

  二、作用:进行两个线程间的通信。一个线程作为管道输出流,另一个线程作为管道输入流,在启动线程前,只需要将这两个线程的管道流连接到一起就可以。 这要就很方便的实现了两个线程间的通信。

  三、例子(我这里谢了一个简单的例子。来说明不同线程之间的读写情况)

import java.io.PipedInputStream;
import java.io.PipedOutputStream;

public class PipeStream {

    //管道输出流
    private static PipedOutputStream outputStream = new PipedOutputStream();
    //管道输入流
    private static PipedInputStream inputStream = new PipedInputStream();

    public static void main(String[] args) throws Exception {
        //输出线程
        Runnable out = ()-> {
            try {
                while(true) {
                    Thread.sleep(1000);
                    outputStream.write("pipe".getBytes());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        };
        //输入线程
        Runnable in = ()-> {
            try {
                byte[] bytes = new byte [1024];
                int len;
                while ((len = inputStream.read(bytes)) != -1) {
                    System.out.println(new String(bytes,0,len));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        };
        //连接管道
        inputStream.connect(outputStream);
        //启动线程
        new Thread(out).start();
        new Thread(in).start();

    }

}

 

相关文章
|
29天前
|
存储 Java 数据处理
|
1月前
|
Java API
java中IO与NIO有什么不同
java中IO与NIO有什么不同
|
3月前
|
存储 算法 Java
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
|
23天前
|
Java 关系型数据库 MySQL
Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
【2月更文挑战第33天】Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
35 2
|
1月前
|
Java
|
2月前
|
Java 数据处理
如何玩转Java IO?
【2月更文挑战第7天】
216 0
如何玩转Java IO?
|
2月前
|
缓存 分布式计算 Java
Java基础深化和提高-------IO流
Java基础深化和提高-------IO流
108 0
|
3月前
|
存储 自然语言处理 Java
从零开始学习 Java:简单易懂的入门指南之IO缓冲流、转换流(三十二)
从零开始学习 Java:简单易懂的入门指南之IO缓冲流、转换流(三十二)
|
6月前
|
Java 测试技术 Apache
Java IO 与 NIO:高效的输入输出操作探究
输入输出(IO)是任何编程语言中的核心概念,而在Java中,IO操作更是应用程序成功运行的基石。随着计算机系统变得越来越复杂,对IO的要求也日益增加。在本文中,我们将探讨Java IO和非阻塞IO(NIO)的重要性以及如何在Java中实现高效的输入输出操作。
|
7月前
|
存储 网络协议 Java
Java中IO流类的体系中BIO与NIO
Java中IO流类的体系中BIO与NIO
62 0