共計 1193 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
在 Java 中,可以使用 PipedInputStream
和PipedOutputStream
類來創(chuàng)建管道。
以下是使用 PipedInputStream
和PipedOutputStream
建立管道的示例代碼:
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class PipeExample {public static void main(String[] args) {try {// 創(chuàng)建管道輸入流和輸出流
PipedInputStream inputStream = new PipedInputStream();
PipedOutputStream outputStream = new PipedOutputStream();
// 將輸入流和輸出流連接起來
inputStream.connect(outputStream);
// 創(chuàng)建發(fā)送線程和接收線程
Thread senderThread = new Thread(() -> {try {// 向輸出流寫入數(shù)據(jù)
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();
}
});
// 啟動發(fā)送線程和接收線程
senderThread.start();
receiverThread.start();} catch (IOException e) {e.printStackTrace();
}
}
}
以上代碼創(chuàng)建了一個管道輸入流 inputStream
和一個管道輸出流 outputStream
,然后通過調(diào)用inputStream.connect(outputStream)
方法將它們連接起來。接下來,創(chuàng)建了一個發(fā)送線程和一個接收線程來分別向輸出流寫入數(shù)據(jù)和從輸入流讀取數(shù)據(jù)。最后,通過調(diào)用 senderThread.start()
和receiverThread.start()
方法啟動這兩個線程。
當運行以上代碼時,接收線程將從輸入流中讀取數(shù)據(jù),并打印出來。輸出結(jié)果應(yīng)為Received: Hello, World!
。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完
發(fā)表至: Java
2023-12-13