Boa noite galera, beleza? Bom, estou com uma dúvida na implementação da classe OutputStream, eu vi que a mesma tem as subclasses ‘OutputStreamWriter’ e ‘BufferedWriter’, alguém poderia me explicar qual é a diferença entre as mesmas? Eu entendi que ambas servem para o fluxo de bytes na saída para um arquivo especificado, mas não entendo como é feito esta codificação, as duas podem receber Strings? ou apenas characters?
Valeu!
Opa, tudo certo?
Então, o OutputStreamWriter é o adaptador para OutputStream, ele cria um Writer baseado em OutputStream. Já o BufferedWriter é um wrapper em outros gravadores. É usado para escrever com buffer.
Você pode usá-los juntos, por exemplo:
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
2 curtidas
Chegou a dar uma lida na documentação das classes OutputStreamWriter e BufferedWriter?
Um OutputStreamWriter
é uma ponte de streams de caracteres para streams de bytes.
Os caracteres gravados nele são codificados em bytes usando um charset específico ou o charset padrão da sistema operacional.
Um BufferedWriter
encapsula qualquer Writer
e utiliza um buffer de memória para otimizar as operações de I/O.
Por exemplo quando você usa um BufferedWriter
com um FileWriter
para escrever em um arquivo, ele vai acumulando os caracteres no buffer e quando ele estiver cheio, aí ele vai de fato gravar o conteúdo no arquivo, dessa forma fica mais eficiente o acesso ao disco.
2 curtidas
Obrigado pelas respostas!!
Eu já havia lido a documentação, porém algumas coisas não haviam ficado tão claras ainda
Valeu!!
1 curtida