ネイティブのパイプを作成するために CreatePipe() はどのように Java で使用されますか?

Javaでは、PipedInputStreamとPipedOutputStreamクラスを使用して、パイプを作成できます。

パイプを使うには、PipedInputStream と PipedOutputStream を使用します。以下に例を示します。

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

public class PipeExample {
    public static void main(String[] args) {
        try {
            // 创建管道输入流和输出流
            PipedInputStream inputStream = new PipedInputStream();
            PipedOutputStream outputStream = new PipedOutputStream();

            // 将输入流和输出流连接起来
            inputStream.connect(outputStream);

            // 创建发送线程和接收线程
            Thread senderThread = new Thread(() -> {
                try {
                    // 向输出流写入数据
                    outputStream.write("Hello, World!".getBytes());
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            });

            Thread receiverThread = new Thread(() -> {
                try {
                    byte[] buffer = new byte[1024];
                    int bytesRead = inputStream.read(buffer);
                    System.out.println("Received: " + new String(buffer, 0, bytesRead));
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            });

            // 启动发送线程和接收线程
            senderThread.start();
            receiverThread.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

このコードはパイプ入力ストリームinputStreamとパイプ出力ストリームoutputStreamを作成し、inputStream.connect(outputStream)メソッドを呼び出すことでそれらを接続します。次に、送信スレッドと受信スレッドを作成して、それぞれ出力ストリームにデータを書き込み、入力ストリームからデータを読み取ります。最後に、senderThread.start()とreceiverThread.start()メソッドを呼び出してこれら2つのスレッドを起動します。

上記コードを実行すると、受信スレッドが入力ストリームからデータを読み取り、それをプリントします。出力結果はReceived: Hello, World!となります。

bannerAds