Il problema degli spazi è dovuto al fatto che Java utilizza i caratteri UNICODE che occupano 2 byte al posto di uno: al posto del metodo writeChars() che hai usato, prova ad utilizzare writeBytes().


Ciao.