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

Java 基礎教程

Controllo di flusso Java

Array Java

Java orientato a oggetti (I)

Java orientato a oggetti (II)

Java orientato a oggetti (III)

Java 异常处理

List Java

Queue Java (coda)

Map collection Java

Set collection Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Classe BufferedWriter Java

In questo tutorial, impareremo Java BufferedWriter e i suoi metodi con l'aiuto di esempi.

La classe BufferedWriter del pacchetto java.io può essere utilizzata insieme ad altri writer per scrivere dati più efficacemente (in termini di caratteri).

Eredita dall'astratto Writer.

Come funziona BufferedWriter

BufferedWriter mantiene un buffer internocon un buffer di 8192 caratteri.

Durante l'operazione di scrittura, i caratteri vengono scritti nel buffer interno invece del disco. Una volta che il buffer è pieno o il writer viene chiuso, tutti i caratteri nel buffer vengono scritti sul disco.

Questo riduce il numero di comunicazioni con il disco. Ecco perché scrivere caratteri con BufferedWriter è più veloce.

Creare un BufferedWriter

Per creare un BufferedWriter, dobbiamo prima importare il pacchetto java.io.BufferedWriter. Dopo aver importato il pacchetto, possiamo creare il writer bufferizzato.

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

Nell'esempio sopra, abbiamo creato un BufferedWriter chiamato buffer e un FileWriter chiamato file.

In questo caso, la dimensione predefinita del buffer interno di BufferedWriter è di 8192 caratteri. Ma possiamo anche specificare la dimensione del buffer interno.

//Creare un BufferedWriter con un buffer interno di dimensioni specifiche
BufferedWriter buffer = new BufferedWriter(file, int size);

Il buffer aiuta a scrivere i caratteri nel file in modo più efficace.

Metodi di BufferedWriter

La classe BufferedWriter fornisce implementazioni di diversi metodi presenti in Writer.

Metodo write()

  • write() - scrive un singolo carattere nel buffer interno del writer

  • write(char[] array) - scrive i caratteri specificati nell'array nel writer

  • write(String data) - scrive la stringa specificata nel writer

Esempio: scrittura di dati nel BufferedWriter del file

import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
  public static void main(String args[]) {
    String data = "Questo è i dati nel file di output";
    try {
      //crea un FileWriter
      FileWriter file = new FileWriter("output.txt");
      //crea un BufferedWriter
      BufferedWriter output = new BufferedWriter(file);
      //scrivi la stringa nel file
      output.write(data);
      //chiudi writer
      output.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Nell'esempio sopra, abbiamo creato un BufferedWriter e un FileWriter chiamati output. Il BufferedWriter è collegato al file output.txt.

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

Per scrivere i dati nel file, abbiamo utilizzato il metodo write().

Qui, quando eseguiamo il programma,output.txtIl file sarà riempito con il seguente contenuto.

Questa è una riga di testo all'interno del file.

Metodo flush()

Per svuotare la缓冲区 interna, possiamo utilizzare il metodo flush(). Questo metodo forza il writer a scrivere tutti i dati presenti nel buffer nel file di destinazione.

Ad esempio, supponiamo di avere un file chiamatooutput.txtun file vuoto.

import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
  public static void main(String[] args) {
    String data = "Questo è un demo del metodo flush";
    try {
      //crea un FileWriter
      FileWriter file = new FileWriter("flush.txt");
      //crea un BufferedWriter
      BufferedWriter output = new BufferedWriter(file);
      //Scrivi i dati nel file
      output.write(data);
      //Aggiorna i dati nel destinatario
      output.flush();
      System.out.println("I dati vengono aggiornati nel file.");
      output.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Risultato di output

I dati vengono aggiornati nel file.

Quando eseguiamo il programma, il fileoutput.txtTesto rappresentato da dati di stringa.

Metodo close()

Per chiudere il writer di buffer, possiamo utilizzare il metodo close(). Una volta chiamato il metodo close(), non possiamo utilizzare il writer per scrivere dati.

Altri metodi BufferedWriter

MetodoDescrizione
newLine()Inserisci una nuova riga per l'autore
append()Inserisci il carattere specificato nel writer corrente