关于使用NIO的transferTo方法拷贝文件的问题
来源:6-8 Selector简析

ice_wolf
2019-11-21
老师你好,下面这段代码有个地方我想不太明白
long transferred = 0L;
long size = fin.size();
while (transferred != size){
transferred += fin.transferTo(0, size, fout);
}
既然一次transfer不能保证全部传完,那么下一次transfer的时候传入的参数为什么不需要根据上次传完的数据重新计算呢,即代码编程下面这样:
long transferred = 0L;
long size = fin.size();
while (transferred != size){
transferred += fin.transferTo(transferred+1, size-transferred, fout);
}
我看了transferTo这个方法的注释,只看到这个方法不保证一次全部传完,但没有说怎样才能保证全部传完,想知道老师是从哪里看到这个能够保证全部传完的方法的呢,还是从实践中摸索出来的。谢谢!
写回答
1回答
-
Stannum
2020-08-08
同学你好~你的问题非常好~事实上,同样的问题我之前已经在其他同学提出的时候解答过了:https://coding.imooc.com/learn/questiondetail/146379.html
抱歉之前解答过之后,我还没有更新课程仓库里的代码,你愿意提交一个合并请求来修复这个问题吗?
00
相似问题