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

[Dúvida] Quando usar o método write(String str) da classe OutputStreameWriter?

Olá, eu estava vendo as aulas sobre fluxo de saída e vi que a classe OutputStreamWriter tem um método que permite a escrita de uma String no fluxo de saída, porém o instrutor nos ensinou a utilizar o método write da classe BufferedWriter porque os caracteres serão acumulado no buffer até serem de fato escritos. Minha dúvida é: se as duas classes trabalham com caracteres o que nos levaria a usar uma ou outra? Na verdade acredito que não compreendi bem essa parte de fluxo de saída.

4 respostas
solução!

Olá Rebeca, tudo bem?

A classe OutputStreamWriter é usada para escrever caracteres em um fluxo de saída binário, enquanto a classe BufferedWriter é usada para escrever caracteres em um buffer antes de escrever no fluxo de saída binário. Em geral, é recomendável usar a classe BufferedWriter para melhorar o desempenho de escrita, pois o buffer permite escrever vários caracteres em blocos em vez de escrever um caractere de cada vez. Fora isso, a classe BufferedWriter fornece vários métodos úteis para gerenciar o buffer, como flush() e newLine(). Então se você estiver interessada em escrever caracteres em um fluxo de saída, é melhor usar a classe BufferedWriter.

Olá Otávio, agradeço o retorno!

Compreendi, se torna mais custosa a alocação de recursos com a classe OutputStreamWriter então. Muito obrigada, ficou mais claro agora!

Olá Rebeca, tudo bem? No geral, é mais eficiente usar um BufferedWriter em vez de um OutputStreamWriter para escrever dados em arquivos, pois o BufferedWriter bufferiza os dados antes de escrever no arquivo, o que pode aumentar significativamente a velocidade de escrita. No entanto, se o buffer for muito grande em relação ao tamanho dos dados a serem escritos, a alocação de recursos pode ser mais cara.

Entendi, muito obrigada Otávio!