Réponse acceptée !
Je pense que ton probleme de blanc vient de l'unicode... en effet, en ASCII (format de representation des caracteres) un caractere prends un octet et en UNICODE (autre format, plus international : gere les accents, caracteres chinois je crois etc) un caractere prends 2 octets.
in.read() meme s'il renvoi un
int (4 octets) lit un octet, donc en fait dans ton code, tu lit a chaque fois une moitié de caractere unicode d'où le blanc a chaque fois. Je sais pas s'il y a une methode plus propre que celle que je vais te proposer mais bon, faute de mieux

:
c=0;
while (c != -1)
{
//lecture 1ere partie du caracter unicode
c = in.read()<<8;
//lecture de la 2eme partie
c=c | (in.read());
//ton c contient maintenant la valeur du caractere unicode
build.append((char) c);
}
Voila, en esperant avoir résolu ton probleme