Java NIO 管道传送器,原文地址:http://tutorials.jenkov.com/java-nio/channel-to-channel-transfers.html
在 Java NIO 中,如果两个管道中有一个管道是文件管道(FileChannel),那么你可以把数据从一个管道传递到另外一个管道中。文件管道中有 transferTo()
和 transferFrom()
方法可以实现数据在管道间传递。
transferFrom()
方法 FileChannel.transferFrom()
可以将一个管道中的数据传递到一个文件管道中。下面是一个简单的使用实例:
toChannel.transferFrom()
方法中的参数 position
和 count
表示向目的管道 toChannel
传递数据时从何处(position)开始,以及传递多少个(count)数据。如果源管道(fromChannel)中没有那么多数据,那么只会传递其中所有的数据。
另外需要注意的是,一些套接字管道实现只会传递套接字管道目前中有的数据,即使之后该套接字管道中可能会有更多的数据。
transferTo()
transferTo()
方法可以将一个文件管道中的数据传递到其他管道中,下面是使用它的一个小例子:
|
|
有没有注意到这个例子跟上一个例子是极其相似的。唯一的不同是文件管道对象调用方法不同而已,剩下的都是相同的。
套接字管道的问题在这里仍然存在。(PS:这一段是在看不懂,就不翻译了吧)