クライアントサーバーのソケットコードがあり、Windows 7マシンとSUSE Linuxボックス間でバイナリファイルを転送しています。私がWin7からLinuxにファイルを転送すると、それらは同じMD5チェックサムで終わるので、それらが同じであることは分かっています。しかし、LinuxからWin7に転送すると、チェックサムが一致せず、ファイルが正しく転送されなかったことを示します。バイナリファイル転送OK Win7からLinuxへWin7から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