java命名空间java.nio.channels类filechannel的类成员方法:
transferto定义及介绍
本文导语:
transferto
public abstract long transferto(long position,
long count,
writablebytechannel target)
throws ioexception
将字节从此通道的文件传输到给定的可写入字节通道。
试图读取...
transferto
public abstract long transferto(long position,
long count,
writablebytechannel target)
throws ioexception
- 将字节从此通道的文件传输到给定的可写入字节通道。
试图读取从此通道的文件中给定 position 处开始的 count 个字节,并将其写入目标通道。此方法的调用不一定传输所有请求的字节;是否传输取决于通道的性质和状态。如果此通道的文件从给定的 position 处开始所包含的字节数小于 count 个字节,或者如果目标通道是非阻塞的并且其输出缓冲区中的自由空间少于 count 个字节,则所传输的字节数要小于请求的字节数。
此方法不修改此通道的位置。如果给定的位置大于该文件的当前大小,则不传输任何字节。如果目标通道中有该位置,则从该位置开始写入各字节,然后将该位置增加写入的字节数。
与从此通道读取并将内容写入目标通道的简单循环语句相比,此方法可能高效得多。很多操作系统可将字节直接从文件系统缓存传输到目标通道,而无需实际复制各字节。
- 参数:
position
- 文件中的位置,从此位置开始传输;必须为非负数count
- 要传输的最大字节数;必须为非负数target
- 目标通道
- 返回:
- 实际已传输的字节数,可能为零
- 抛出:
illegalargumentexception
- 如果关于参数的前提不成立
nonreadablechannelexception
- 如果不允许从此通道进行读取操作
nonwritablechannelexception
- 如果目标通道不允许进行写入操作
closedchannelexception
- 如果此通道或目标通道已关闭
asynchronouscloseexception
- 如果正在进行传输时另一个线程关闭了任一通道
closedbyinterruptexception
- 如果正在进行传输时另一个线程中断了当前线程,因此关闭了两个通道并将当前线程设置为中断
ioexception
- 如果发生其他 i/o 错误