NIO基础入门(四)之Channel-to-Channel传输

[TOC]

1.概念

由于经常需要从一个位置把文件数据批量传输到另一个位置,FileChannel类添加了一些优化方法来提高传输效率

Channel-to-Channel

2.优点

省去通道和通道间的缓冲复制清空传递数据,通道交叉对接,极大地提高了传输效率

注意:Channel-to-Channel至少有一端必须是FileChannel

socket通道实现WritableByteChannel和ReadableByteChannel接口,也可是使用方法传递,前提是有一端必须为FileChannel

3.方法

transferTo()

数据传出端使用,两个方法使用一个即可

transferFrom()

目标接收端使用,两个方法使用一个即可

4.演示

1
2
3
4
5
6
/**
* 伪代码
* transferTo和transferFrom任意一个方法都可以直接传输
*/
srcChannel.transferTo(0,srcChannel.size(),targetChannel);
//targetChannel.transferFrom(srcChannel,0,srcChannel.size());