对于“通过Socket连接一次传输多个文件”这篇文章中move(buf, writeLen, leftLen)这个方法的补充,对于原作者没有上传move方法,本人在用的过程中还原了作者的想法,代码如下@TOC
// An highlighted block
/**
*
* @param buf 读取大小
* @param writeLen 已经写入到文件中的
* @param leftLen 内存中剩余的字节长度
*/
public static void move( byte buf[] ,int writeLen, int leftLen){
for (int i = 0; i < leftLen; i++) {
if(buf[writeLen+i] != 0){
buf[i] = buf[writeLen+i];
}
}
}
方法的意思假设最后一次内存中缓存了8192个字节,有1000个字节是属于a文件的,此时a文件已经写完关闭了,那么剩下的7192是属于b文件的,我们要将这7192个字节写入到b文件,这是就有把byte buf[]进行更新为剩下的7192个字节的内容,把前面的1000个字节给移除。
代码已经能用了,就是不知道是否还有兄弟有更好的解释,可以探讨一下。
通过Socket连接一次传输多个文件引用自:
[1]: https://blog.csdn.net/fx1ts/article/details/38702603