Na seção anterior, aprendemos como construir um fluxo de saída de bytes de arquivo. Nesta seção, continuamos a aprender como usar o fluxo de saída para escrever bytes e fechar o fluxo.
O objetivo do fluxo de saída é fornecer um canal para o destino. O programa pode gravar dados no programa para o destino por meio deste canal. O fluxo de bytes do arquivo pode chamar o método de gravação herdado da classe pai para gravar arquivos sequencialmente. O fluxo FileOutStream grava o conteúdo no arquivo sequencialmente, ou seja, desde que o fluxo não seja fechado, cada vez que o método write é chamado, o conteúdo é gravado no arquivo sequencialmente até que o fluxo seja fechado.
O método write do fluxo de saída de bytes grava dados no destino em bytes.
O fluxo de saída chama esse método para gravar um único byte no destino.
O fluxo de saída chama esse método para gravar uma matriz de bytes no destino.
Grave len bytes da matriz de bytes fornecida, começando no deslocamento até o destino.
Feche o fluxo de saída.
Nota : O fluxo FileOutputStream grava arquivos sequencialmente, desde que o fluxo não seja fechado, o conteúdo é gravado sequencialmente no destino cada vez que o método de gravação é chamado até que o fluxo seja fechado.
Antes de o sistema operacional salvar os bytes gravados pelo programa no fluxo de saída do disco, eles às vezes são armazenados no buffer de memória. Chamando o método close() , você pode garantir que o sistema operacional grave o conteúdo do buffer de fluxo. para ele. O destino, ou seja, fechar o fluxo de saída pode liberar o conteúdo do buffer usado pelo fluxo, geralmente para um arquivo de disco.
Por exemplo:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){byte[]a=Feliz Ano Novo.getBytes();byte[]b=FelizAnoNovo.getBytes();Filefile=newFile(a.txt);// saída O destino try{OutputStreamout=newFileOutputStream(file); //Aponta para o fluxo de saída de destino System.out.println(file.getName()+size:+file.length()+bytes);out.write( a) ;//Escreve dados no destino out.close();out=newFileOutputStream(file,true);//Prepara para adicionar conteúdo ao final do arquivo System.out.println(file.getName()+size:+ arquivo .length()+bytes);out.write(b,0,b.length);System.out.println(file.getName()+size:+file.length()+bytes);out. );}catch(IOExceptione){System.out.println(Error+e);}}}
Os resultados da execução são os seguintes:
Tamanho de a.txt: 0 bytes Tamanho de a.txt: 12 bytes Tamanho de a.txt: 26 bytes