Java-NIO(九):管道 (Pipe)

Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。

代码使用示例:

 1 @Test
 2     public void testPipe() throws IOException {
 3         // 1、获取通道
 4         Pipe pipe = Pipe.open();
 5
 6         // 2、获取sink管道,用来传送数据
 7         Pipe.SinkChannel sinkChannel = pipe.sink();
 8
 9         // 3、申请一定大小的缓冲区
10         ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
11         byteBuffer.put("123232142345234".getBytes());
12         byteBuffer.flip();
13
14         // 4、sink发送数据
15         sinkChannel.write(byteBuffer);
16
17         // 5、创建接收pipe数据的source管道
18         Pipe.SourceChannel sourceChannel = pipe.source();
19         // 6、接收数据,并保存到缓冲区中
20         ByteBuffer byteBuffer2 = ByteBuffer.allocate(1024);
21         byteBuffer2.flip();
22         int length = sourceChannel.read(byteBuffer2);
23
24         System.out.println(new String(byteBuffer2.array(), 0, length));
25
26         sourceChannel.close();
27         sinkChannel.close();
28
29     }
时间: 2024-11-13 15:37:14

Java-NIO(九):管道 (Pipe)的相关文章

NIO之管道 (Pipe)

Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 代码使用示例: 1 @Test 2 public void testPipe() throws IOException { 3 // 1.获取通道 4 Pipe pipe = Pipe.open(); 5 6 // 2.获取sink管道,用来传送数据 7 Pipe.SinkChannel sinkChannel = pipe.sink(); 8

Java NIO (五) 管道 (Pipe)

Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 如下图: 向管道写数据: 从管道读数据: 1. 从读取管道的数据,需要访问source通道. 2. 调用source通道的read()方法来读取数据

Java NIO -- 管道 (Pipe)

Java NIO 管道是2个线程之间的单向数据连接. Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 举个例子: package com.soyoungboy.nio; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.Pipe; import org.junit.Test; public class TestPipe { @Tes

Java Nio 十三、Java NIO Pipe(管道)

最后更新时间:2014-06-23 一个Java NIO管道是在两个线程之间的单向的数据连接.一个管道有一个源通道和一个下沉通道.你写数据到一个下沉的通道.这个数据然后从源通道中读取. 这里有一个管道原则的示意图: 创建一个管道 你可以通过调用Pipe.open()方法打开一个管道,像下面这样: Pipe pipe = Pipe.open(); 写入一个管道 为了写入一个管道,你需要访问这个下沉的通道,像下面这样: Pipe.SinkChannel sinkChannel = pipe.sink

转:Java NIO系列教程(九) Pipe

Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道.例如: Pipe pipe = Pipe.open(); 向管道写数据 要向管道写数据,需要访问sink通道.像这样: Pipe.SinkChannel sinkChannel = pipe.sink(); 通过调用SinkChannel的write()方法,将数据写

Java NIO Pipe

Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道.例如: Pipe pipe = Pipe.open(); 向管道写数据 要向管道写数据,需要访问sink通道.像这样: Pipe.SinkChannel sinkChannel = pipe.sink(); 通过调用SinkChannel的write()方法,将数据写

Java NIO系列教程(十一) Pipe

Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道.例如: 1 Pipe pipe = Pipe.open(); 向管道写数据 要向管道写数据,需要访问sink通道.像这样: 1 Pipe.SinkChannel sinkChannel = pipe.sink(); 通过调用SinkChannel的write()方法,

java nio管道

管道(Pipe) (本部分原文链接,作者:Jakob Jenkov,译者:黄忠,校对:丁一) Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道.例如: Java代码 Pipe pipe = Pipe.open(); 向管道写数据 要向管道写数据,需要访问sink通道.像这样: Java代码 Pipe.SinkChan

Java NIO(七)管道

Java NIO 管道是两个线程之间的单向数据连接.Pipe有一个source通道和sink通道(内部类).数据会被写到sink通道,从source通道读取. 给一张Pipe通道的原理图: 创建管道: Pipe pipe = Pipe.open(); 向管道写数据: Pipe.SinkChannel sinkChannel = pipe.sink(); String str = "some things";ByteBuffer buf = ByteBuffer.allcote(1024