English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (Fila)

Conjuntos Map do Java

Conjuntos Java

Java Entrada e Saída (I/)

Reader do Java/Writer

Outros tópicos do Java

Classe BufferedWriter do Java

Neste tutorial, vamos aprender sobre o BufferedWriter do Java e seus métodos com a ajuda de exemplos.

A classe BufferedWriter do pacote java.io pode ser usada junto com outros escritores para escrever dados de maneira mais eficiente (em unidades de caracteres).

Ele herda a classe abstrata Writer.

Como funciona o BufferedWriter

BufferedWriter mantém um buffer internodo8192um buffer de caracteres

Durante a operação de escrita, os caracteres serão escritos no buffer interno em vez do disco. Assim que o buffer estiver cheio ou o escritor for fechado, todos os caracteres no buffer serão escritos no disco.

Portanto, reduz o número de comunicações com o disco. É por isso que a escrita de caracteres usando BufferedWriter é mais rápida.

Crie um BufferedWriter

Para criar um BufferedWriter,我们必须 primeiro importar o pacote java.io.BufferedWriter. Após a importação do pacote, podemos criar o escritor com buffer.

//Criar FileWriter
FileWriter file = new FileWriter(String name);
//Criar BufferedWriter
BufferedWriter buffer = new BufferedWriter(file);

No exemplo acima, criamos um BufferedWriter chamado buffer e um FileWriter chamado file.

Aqui, o tamanho padrão do buffer interno do BufferedWriter é8192caracteres. Mas, também podemos especificar o tamanho do buffer interno.

//Crie um BufferedWriter com um buffer interno de tamanho especificado
BufferedWriter buffer = new BufferedWriter(file, int size);

O buffer ajudará a escrever caracteres no arquivo de forma mais eficiente.

Métodos do BufferedWriter

A classe BufferedWriter fornece implementações de diferentes métodos existentes em Writer.

Método write()

  • write() - Escrever um caractere individual no buffer interno do escritor

  • write(char[] array) - Escrever os caracteres do array especificado no escritor

  • write(String data) - Escrever a string especificada no escritor

Exemplo: Escrever dados no BufferedWriter do 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 {
      //Criar FileWriter
      FileWriter file = new FileWriter("output.txt");
      //Criar BufferedWriter
      BufferedWriter output = new BufferedWriter(file);
      //Escrever string no arquivo
      output.write(data);
      //Fechar writer
      output.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

No exemplo acima, criamos um BufferedWriter e um FileWriter chamado output. O BufferedWriter está ligado ao arquivo output.txt.

FileWriter file = new FileWriter("output.txt");
BufferedWriter output = new BufferedWriter(file);

Para escrever dados no arquivo, usamos o método write().

Aqui, quando executamos o programa,output.txtO arquivo será 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 método flush(). Este método força o escritor a escrever todos os dados existentes no buffer para o arquivo de destino.

Por exemplo, suponha que tenhamos um arquivo chamadooutput.txtum arquivo vazio.

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 {
      //Criar FileWriter
      FileWriter file = new FileWriter(" flush.txt");
      //Criar BufferedWriter
      BufferedWriter output = new BufferedWriter(file);
      //Escrever dados no arquivo
      output.write(data);
      //Refrescar dados para o destino
      output.flush();
      System.out.println("Os dados são atualizados para o arquivo.");
      output.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Resultados de Saída

Os dados são atualizados para o arquivo.

Quando executamos o programa, o arquivooutput.txtTexto representado por dados de string preenchido.

Método close()

Para fechar o writer com buffer, podemos usar o método close(). Uma vez que o método close() foi chamado, não podemos usar o writer para escrever dados.

Outros métodos BufferedWriter

MétodoDescrição
newLine()Inserir nova linha para o autor
append()Inserir caractere especificado no escrevedor atual