日期:2014-05-20  浏览次数:20715 次

关于输入输出流问题
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的区别,
前者是 持续执行直到读到流的尾部,结束。
后者是 只要条件满足,就只执行一次,显然,条件满足,且执行了一次。