일부 클라이언트 서버 소켓 코드가 있고 Windows 7 컴퓨터와 SUSE Linux 상자간에 바이너리 파일을 전송하고 있습니다. Win7에서 Linux로 파일을 전송할 때, 동일한 MD5 Checksum으로 끝나기 때문에 동일하다는 것을 압니다. 그러나 Linux에서 Win7로 전송할 때 체크섬이 일치하지 않아 파일이 제대로 전송되지 않았다는 것을 나타냅니다.바이너리 파일 전송 Ok Win7을 Linux로 바꾸기 Ok39에서 Linux로
아무도 이것에 부딪치지 않습니까? ObjectOutputStreams 및 DataInputStreams를 사용하고 있으며 코드는 양쪽에서 동일합니다.
// connect socket to server socket, etc
//........
//=======================
// read the file
try {
size = file.length();
byteArr = new byte[(int) size];
dis = new DataInputStream(new FileInputStream(file));
dis.read(byteArr, 0, byteArr.length);
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
//=======================
// then send it
try {
oos.writeObject(byteArr);
oos.flush();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
// then close oos, dis, etc
당신은 [Fileutils의 (http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html#copyFile (java.io 사용하려고하지 마십시오 .File, java.io.OutputStream))? – corsair
FileUtils lib에 대해 아무 것도 모릅니다. 바이너리 파일을 전송하기위한 메소드가 특별히 있습니까? – JCoop