qq_八月的雨_0
2019-08-16 19:24
while((bytes=in.read(buf,0,buf.length))!=-1) {
out.write(buf,0,bytes);
out.flush(); //
}
第一次循环,假如buf中装满了,
第二次循环的时候buf是会初始化,然后再向数组中写,还是第二次不会初始化,会把第一次写的内容覆盖掉,然后写的时候只写这次读到的长度。
我去试了一下,发现并不会buf数组并不会初始化,第二次读取的数据会直接覆盖数组原来的内容。
假设第二次循环b=1002,那么buf[0]~buf[1001]的值会与第一次循环时的值不一致,而buf[1002]之后的数据与第一次循环一致。没覆盖的值不为0就证明了没有初始化,这就说明第二次读取时的内容直接覆盖原来的内容。
debug一下试试就知道了
文件传输基础——Java IO流
133754 学习 · 1030 问题
相似问题