ネイティブのパイプを作成するために 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!となります。