Pessoal, estou com uma dúvida, um exercício do livro que estou estudando pede para concatenar 2 arquivos, conteúdo da origem adicionar no destino, Pensei em fazer do seguinte modo, abrir o arquivo de leitura e armazenar cada linha em um buffer, posicionar o ponteiro de arquivo no último byte, e gravar a linha no arquivo de saida.Acontece o seguinte:
executo a primeira vez:
adicionado.
foi?
executo segunda vez:
"
[i]outra frase
dicionado.
foi?
[/i]"
perceba que a nova frase não foi adicionada ao final do arquivo, e apareceu essas “coisas”. fico grato se alguém me dizer onde estou errando e sugestão de outros modos para fazer isso 
public void anexar(File from,File to) throws IOException
{
BufferedReader leitor = null;
RandomAccessFile escritor = null;
if(!from.exists())
throw new IllegalArgumentException();
try
{
escritor = new RandomAccessFile(to,"rw");
escritor.seek(from.length());
leitor = new BufferedReader(new FileReader(from));
boolean fim = false;
while(!fim)
{
String linha = leitor.readLine();
if(linha == null)
fim = true;
else
{
escritor.writeChars(linha);
escritor.writeChars("\n");
}
}
}
finally
{
if(leitor != null)
leitor.close();
if(escritor != null)
escritor.close();
}
}