Algunos siempre tuvimos problemas en la transferencia de archivos, especialmente en Java, que a pesar de ser muy completo, a veces ese es su principal incoveniente (qué clase o componente usar).
Aca les dejo un pequeño ejemplo que realmente funciona, con archivos de gran tamaño y usando Socket's en Java.
El cliente envia el archivo al servidor.