Neste tutorial, aprenderemos sobre Java BufferedWriter e seus métodos com a ajuda de exemplos.
A BufferedWriter
classe do java.io
pacote pode ser usada com outros gravadores para gravar dados (em caracteres) de forma mais eficiente.
Ele estende a classe abstrata Writer
.
Trabalho de BufferedWriter
O BufferedWriter
mantém um buffer interno de 8.192 caracteres .
Durante a operação de gravação, os caracteres são gravados no buffer interno em vez de no disco. Uma vez que o buffer é preenchido ou o gravador é fechado, todos os caracteres do buffer são gravados no disco.
Conseqüentemente, o número de comunicação com o disco é reduzido. É por isso que escrever caracteres é mais rápido usando BufferedWriter
.
Crie um BufferedWriter
Para criar um BufferedWriter
, devemos java.io.BufferedWriter
primeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o gravador em buffer.
// Creates a FileWriter FileWriter file = new FileWriter(String name); // Creates a BufferedWriter BufferedWriter buffer = new BufferedWriter(file);
No exemplo acima, criamos um BufferedWriter
buffer nomeado com o FileWriter
arquivo nomeado.
Aqui, o buffer interno do BufferedWriter
tem o tamanho padrão de 8.192 caracteres. No entanto, também podemos especificar o tamanho do buffer interno.
// Creates a BufferedWriter with specified size internal buffer BufferedWriter buffer = new BufferedWriter(file, int size);
O buffer ajudará a gravar caracteres nos arquivos com mais eficiência.
Métodos de BufferedWriter
A BufferedWriter
classe fornece implementações para diferentes métodos presentes em Writer
.
Método write ()
write()
- grava um único caractere no buffer interno do escritorwrite(char() array)
- grava os caracteres da matriz especificada para o escritorwrite(String data)
- escreve a string especificada para o escritor
Exemplo: BufferedWriter para gravar dados em um arquivo
import java.io.FileWriter; import java.io.BufferedWriter; public class Main ( public static void main(String args()) ( String data = "This is the data in the output file"; try ( // Creates a FileWriter FileWriter file = new FileWriter("output.txt"); // Creates a BufferedWriter BufferedWriter output = new BufferedWriter(file); // Writes the string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
No exemplo acima, criamos um gravador em buffer denominado output junto com FileWriter
. O gravador em buffer está vinculado ao arquivo output.txt .
FileWriter file = new FileWriter("output.txt"); BufferedWriter output = new BufferedWriter(file);
Para gravar dados no arquivo, usamos o write()
método.
Aqui, quando executamos o programa, o arquivo output.txt é preenchido com o seguinte conteúdo.
This is a line of text inside the file.
Método flush ()
Para limpar o buffer interno, podemos usar o flush()
método. Este método força o gravador a gravar todos os dados presentes no buffer no arquivo de destino.
Por exemplo, suponha que temos um arquivo vazio denominado output.txt .
import java.io.FileWriter; import java.io.BufferedWriter; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileWriter FileWriter file = new FileWriter(" flush.txt"); // Creates a BufferedWriter BufferedWriter output = new BufferedWriter(file); // Writes data to the file output.write(data); // Flushes data to the destination output.flush(); System.out.println("Data is flushed to the file."); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Resultado
Os dados são liberados para o arquivo.
Quando executamos o programa, o arquivo output.txt é preenchido com o texto representado pelos dados da string.
Método close ()
Para fechar o gravador em buffer, podemos usar o close()
método. Depois que o close()
método é chamado, não podemos usar o gravador para gravar os dados.
Outros métodos de BufferedWriter
Método | Descrição |
---|---|
newLine() | insere uma nova linha para o escritor |
append() | insere o caractere especificado para o escritor atual |
Para saber mais, visite Java BufferedWriter (documentação oficial do Java).