aqui te pongo el enlace al source code de un joiner que hice, está´en C++ pero en la cabecera está explicado el funcionamiento.
http://lympex.securityhead.com/resources/sources/Jhoiner_v0.7_source.zip
http://lympex.securityhead.com/resources/sources/Jhoiner_v0.7_source.zip