sexta-feira, 9 de setembro de 2011

Escrita de arquivos em Java: FileWriter e FileOutputStream

Em Java existem diferentes formas de se escrever dados em arquivos. Duas delas são através da utilização das classes FileWriter e FileOutputStream. Mas se exitem diferentes formas de escrita, qual é a diferença entre elas? FileOutputStream se destina à escrita fluxos de raw-bytes (bytes individuais que isoladamente não representam valores, e por sua vez, precisam ser agrupados para constituir informação), tais como dados de imagem, música ou arquivos executáveis, ao passo que, para escrever streams de caracteres, considere usar FileWriter.

Abaixo, exemplos de utilização destas duas abordagens:
FileOutputStream:

FileWriter:

No primeiro código, temos a escrita de 1024 bytes em um arquivo binário. No Segundo código, temos a escrita de 1024 caracteres em um arquivo texto. Caso o array de bytes do primeiro código, fosse escrito em disco, utilizando-se FileWriter do segundo código, o arquivo iria possuir valor diferente, em função da codificação de caracteres utilizada pelo FileWriter. Entretanto, se você tiver um array de caracteres, poderá utilizar o FileOutputStream porque este, ao efetuar a escrita, não re-codifica os bytes recebidos na entrada.

Abraço,
Até mais!

Referências:
FileOutputStream Javadoc
FileWriter Javadoc

Nenhum comentário:

Postar um comentário