关于输入输出流问题
byte[] buffer=new byte[8192];
while((bytesread =instream.read(buffer, 0, 8192)) != -1)
outstream.write(buffer, 0, bytesread);
和
if((bytesread =instream.read(buffer, 0, 8192)) != -1)
outstream.write(buffer, 0, bytesread);
while循环和if在此实现的功能有什么不一样??
为什么前者能全部读取。后者却只读取了2/3的文件
------解决方案--------------------不管你的输入流共有多少数据 都应该使用循环来读取
因为 输入流并不能保证一次读完所有数据 即使你的buffer足够大
------解决方案--------------------楼上正解
------解决方案--------------------顶楼上
------解决方案--------------------while和if的区别,
前者是 持续执行直到读到流的尾部,结束。
后者是 只要条件满足,就只执行一次,显然,条件满足,且执行了一次。