Ống dẫn trong Java
Giới thiệu
Java hỗ trợ tiên ích ống dẫn thông qua hai lớp java.io.PipedInputStream và java.io.PipedOutputStream. Chúng là hai đầu của một ống dẫn. Trong đó PipedInputStream là đầu đọc dữ liệu và PipedOutputStream là đầu ghi dữ liệu của ống dẫn.
PipedInputStream là lớp con của InputStream nên nó có tất cả các thuộc tính của InputStream.
PipedOutputStream là lớp con của OutputStream nên nó có tất cả các thuộc tính của OutputStream
Các cách tạo ống dẫn
Để tạo một ống dẫn ta chỉ cần tạo ra hai đối tượng thuộc lớp PipedInputStream và PipedOutputStream và nối chúng lại với nhau. Khi đó dữ liệu được ghi vào PipedOutputStream sẽ được đọc ra ở đầu PipedInputStream:

Cách 1
- Tạo đầu đọc:
- PipedInputStream readId = new PipedInputStream();
- Tạo đầu ghi:
- PipedOutputStream writeId = new PipedOutputStream();
- Nối đầu đọc với đầu ghi hay ngược lại
- readId.connect(writeId);
- // hoặc writeId.connect(readId);
Cách 2
- Tạo đầu đọc:
- PipedInputStream readId = new PipedInputStream();
- Tạo đầu ghi và nối vào đầu đọc đã có:
- PipedOutputStream writeId = new PipedOutputStream(readId);
Hoặc: Ta có thể tạo đầu ghi trước rồi tạo đầu đọc sau.
Lưu ý: Các phương thức khởi tạo của PipedInputStream và PipedOutputStream sử dụng ở trên đòi hỏi phải "bắt" (catch) IOException do chúng có thể “quẳng” ra (throws)..
- Lập trình truyền thông
- Chương 1 : Tổng quan về lập trình truyền thông
- Chương 2 : Sơ lược về ngôn ngữ Java
- Mục đích, yêu cầu Sơ lược về ngôn ngữ Java
- Giới thiệu về ngôn ngữ Java
- Chương trình ứng dụng Java kiểu Application
- Các cấu trúc điều khiển trong Java
- Ngoại lệ (EXCEPTION) trong Java
- Một số vấn đề liên quan đến lớp trong Java
- Vào/Ra với Stream trong Java
- Luồng (Thread) trong Java
- Bài tập áp dụng Java
- Chương 3 : Ống dẫn (Pipe)
- Chương 4 : Socket
- Chương 5 : RPC và RMI