由于OutPutStream的方法write(buffer)写入数据流时用如下方法可能会多谢造成:
byte[] buffer = new byte[1024]; while (in.read(buffer) != -1) { out.write(buffer); buffer = new byte[1024]; }
改成如下准确写入数据流即可:
byte[] buffer = new byte[1024]; int i = 0; while ((i = in.read(buffer)) != -1) { out.write(buffer, 0, i); buffer = new byte[1024]; }