제가 답변해줬던 분인거 같은데
디바이스에서 던져준 파일 사이즈와 수신한 파일 사이즈가 일치하는지 확인해보세요.
일치 하신다면 다음을 확인해 보세요.
read 함수를 쓰실때 어떻게 쓰시는지 확인이 안되는데 혹시
read(byte[], int, int) 이 방식으로 쓰셨을때
통신 I/O 가 관여되어 있는 read 함수 이기 때문에 3번째 인자인 length만큼 읽히지 않을 수가 있습니다.
그래서 read함수 자체가 실제 읽은 length를 리턴하여 줍니다.
단적으로 예를 들어서
byte[] buf = new byte[1024];
int nReadCnt;
nReadCnt = read(buf, 0, buf.length);
로 하였을때 실제로 원하시는 nReadCnt값은 1024가 되어야 하겠지만 실제로는 그보다 훨씬 작은 값이 될수도 있다는 얘기입니다. 만약 512가 리턴되었다고 하면 read 함수는 buf변수에 0번째부터 511번째까지만 update 시켜주기 때문에 다음에 받아야할 총 사이즈는 (실제 파일사이즈-1024)가 아닌 (실제 파일사이즈-512)가 되어야 하지요.
이 부분도 확인 해 보시기 바랍니다.