为什么我先把图片转换为byte[]数组然后经过传送再恢复的时候图片大小缩小并少了一块?谢谢大家帮忙
server:
             OutputStream outputToSocket = incomingConnection.getOutputStream();
             InputStream inputFromSocket = incomingConnection.getInputStream();

          File f=new File("d:\\3.bmp"); 
     BufferedInputStream   bufferIn   =   new   BufferedInputStream(inputFromSocket); 
          byte[] buffer=new byte[1024];
     BufferedOutputStream  bw=new BufferedOutputStream(new FileOutputStream(f));
     while(bufferIn.read(buffer)!=-1){
     bw.write(buffer);
     }
          } catch (Exception e) {
             System.out.println("Error handling a client: " + e);
client:
     File f=new File(path);
     byte[] buffer=new byte[1024];
FileInputStream   in   =   new   FileInputStream(f);   
BufferedInputStream  br=new BufferedInputStream(new FileInputStream(f));
while(br.read(buffer)!=-1){
bufferOut.write(buffer);
}

解决方案 »

  1.   

    既然你有byte[] 了,就直接用byte操作算了
        OutputStream outputToSocket = incomingConnection.getOutputStream();
        InputStream inputFromSocket = incomingConnection.getInputStream();
        File f = new File("d:\\3.bmp");
        byte[] buffer = new byte[1024];
        int len;
        while ((len = inputFromSocket.read(buffer)) != -1) {
          outputToSocket.write(buffer, 0, len);
        }
        outputToSocket.flush();客户端一样,直接操作byte就可以了。