Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

PrintStream recebe como parâmetro verdadeiro para acrescentar, mas sobrescreve no arquivo.

Bem, assistindo as vídeos aulas referentes a parte de codificação dos charsets, o Nico mostrou que ao criar um objeto do tipo PrintStream eu posso definir qual o tipo do encoding será utilizado. Eu criei um projeto básico, onde o programa recebe dados do usuário e escreve estes num arquivo .txt, utilizando o construtor da classe PrintStream que possui 3 parâmetros (File, boolean, Charset) eu inseri no boolean true para que o arquivo acrescentasse e mantivesse os dados armazenados sem sobrescrever o que já existe lá dentro, mas não é o que acontece, o arquivo está sendo sobrescrito mesmo passando true na instanciação do objeto, como eu poderia resolver essa situação? Segue o código abaixo:

public void setPessoa(Pessoa pessoa) throws FileNotFoundException,     UnsupportedEncodingException {
        //Criando o objeto

        PrintStream writer = new PrintStream(new     FileOutputStream(new File(directory)), true, "UTF-8");
        //Efetuando a escrita no arquivo        
        writer.println(pessoa.getNome());                                             
        writer.println(pessoa.getTelefone());    
        writer.println(Integer.toString(pessoa.getIdade()));
        writer.close();
    }
1 resposta
solução!

O booleano do PrintStream é para autoFlush, não para append.

O append fica no construtor do FileOutputStream. Para funcionar como espera:

PrintStream writer = new PrintStream(new FileOutputStream(new File(directory), true), true, "UTF-8");