Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

PrintWriter, PrintStream ou FileWriter, qual utilizar?

O prof. Nico apresentou essas formas além de mais uma para escrita, entretanto não consigo avaliar qual seria melhor para utilizar, afinal todas, nos exemplos dados, executam o mesmo resultado. E aí, qual seria a melhor no dia a dia para uso?

Cheguei a pesquisar na internet entretanto a maioria das respostas são "basicamente, não haverá diferença", então gostaria de confirmar.

2 respostas
solução!

Fala ai Falcão, de boa ?

PrintWriter

Imprime representações formatadas de objetos em um fluxo de saída de texto. Esta classe implementa todos os métodos de impressão encontrados no PrintStream. Ele não contém métodos para gravar bytes brutos, para os quais um programa deve usar fluxos de bytes não codificados. Ao contrário da classe PrintStream, se a limpeza automática estiver ativada, isso será feito somente quando um dos métodos println, printf ou format for chamado, em vez de sempre que um caractere de nova linha for gerado. Esses métodos usam a própria noção de separador de linha da plataforma em vez do caractere de nova linha.

Métodos nesta classe nunca lançam exceções de E / S, embora alguns de seus construtores possam. O cliente pode perguntar se algum erro ocorreu invocando checkError ().

FileWriter

Aula de conveniência para escrever arquivos de caracteres. Os construtores desta classe assumem que a codificação de caracteres padrão e o tamanho padrão do buffer de bytes são aceitáveis. Para especificar esses valores, construa um OutputStreamWriter em um FileOutputStream. Se um arquivo está disponível ou pode ser criado depende da plataforma subjacente. Algumas plataformas, em particular, permitem que um arquivo seja aberto para gravação por apenas um FileWriter (ou outro objeto de gravação de arquivo) por vez. Em tais situações, os construtores nesta classe falharão se o arquivo envolvido já estiver aberto.

FileWriter destina-se a escrever fluxos de caracteres. Para gravar fluxos de bytes brutos, considere o uso de um FileOutputStream.

PrintStream

Um PrintStream adiciona funcionalidade a outro fluxo de saída, ou seja, a capacidade de imprimir representações de vários valores de dados convenientemente. Dois outros recursos também são fornecidos. Ao contrário de outros fluxos de saída, um PrintStream nunca lança uma IOException; em vez disso, situações excepcionais simplesmente definem um sinalizador interno que pode ser testado por meio do método checkError. Opcionalmente, um PrintStream pode ser criado para liberar automaticamente; Isso significa que o método flush é chamado automaticamente depois que uma matriz de byte é gravada, um dos métodos println é invocado ou um caractere de nova linha ou byte ('\ n') é gravado. Todos os caracteres impressos por um PrintStream são convertidos em bytes usando a codificação de caracteres padrão da plataforma. A classe PrintWriter deve ser usada em situações que exigem caracteres de escrita em vez de bytes.

Espero que isso possa responder sua dúvida

Matheus, boa tarde, eu estou com essa mesma dúvida e li o mesmo texto que você postou, só que na documentação do Java, mas ainda não está 100% clara a resposta...afinal são em essência quase a mesma coisa, possuindo apenas alguns métodos diferentes e no caso do PrintWriter a "não necessidade" da IOException?