关于transferTo

来源:6-5 实战:多方法实现本地文件拷贝(下)

w3n9

2019-10-12

请问老师,transferTo如果可能会被执行多次的话,第一个参数和第二个参数不需要改变吗?
怎样才能让他执行多次,我试了几种方法他好像都只能执行一次

写回答

1回答

Stannum

2019-10-14

同学你好~你指出的问题非常正确,这里是代码上的失误,在transferTo函数的参数里,第一个参数是开始拷贝的文件位置,第二个参数是最大拷贝长度。所以每一次循环,都应该改变这两个参数。正确的代码应该是这样:

while(transferred != size){
    transferred += fin.transferTo(transferred, size - transferred, fout);
}

明天我会将更正过的代码添加到代码仓库~再一次感谢你的指正~

4
1
w3n9
NIO忘光了今天又看了一遍,第二个问题应该是transferTo一次最大只能复制两个G,超过了就得循环了
2020-07-31
共1条回复

系统学习Java网络编程 深度理解BIO/NIO/AIO

对比式学习助你真正理解BIO/NIO/AIO三大网络编程模型。

880 学习 · 148 问题

查看课程