今天写一个简单的文件传输问题,没想到弄了好长时间,结果发现是flush的问题如下:  byte[] data = new byte[256];
  while((receiveLen < fileLen))
  {
     read = (int) ( fileLen - receiveLen > data.length ? data.length : fileLen - receiveLen );
     inputStream.read(data,0,read);              //inputStream从服务器端接收文件的字节流
     bufferOutputStream.write(data,0,read);     // 本地客户端写到文件的缓冲输出流
     receiveLen += read;
     //System.out.println(receiveLen);
  }
  bufferOutputStream.flush();然后发现把System.out.println那一句注释掉程序就陷在循环里面了,不注释这一句就没问题。。
后来我把 bufferOutputStream.flush();移到循环里面就OK了现在想搞清楚问题的实质,我一直以为java IO阻塞只是对于read操作而言,write操作也有阻塞么?请大家帮忙解惑一下~~~