0Pricing
Java Academy · Lezione

Stream bufferizzati

Imparare a utilizzare gli stream bufferizzati: BufferedInputStream e BufferedOutputStream per un I/O efficiente di byte.

Stream bufferizzati è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 3 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 3 lezioni in totale.

Introduzione

Gli stream con buffer velocizzano l'I/O dei file. Raggruppano molte operazioni di lettura o scrittura di piccole dimensioni in operazioni più grandi.

Il concetto di BufferedInputStream

BufferedInputStream avvolge InputStream e legge blocchi di byte nella memoria. La lettura diventa più veloce quando vengono effettuate molte chiamate di piccole dimensioni.

Codice: BufferedInputStream

Questo codice legge i byte da un file utilizzando il buffering. L'output mostra i valori dei byte separati da spazi.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("data.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(p))) {
      int b;
      while ((b = bis.read()) != -1) {
        System.out.print(b + " ");
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Il concetto di BufferedOutputStream

BufferedOutputStream raccoglie i byte nella memoria prima di scriverli. In questo modo riduce il numero di scritture sul disco.

Codice: BufferedOutputStream

Questo codice scrive cinque byte in out.bin. BufferedOutputStream esegue il flush in blocchi per una maggiore efficienza.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("out.bin");
    try (java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(p))) {
      for (int i = 0; i < 5; i++) {
        bos.write(i); // write 5 bytes
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Codice: copia con stream con buffer

Gli stream con buffer rendono la copia dei file semplice ed efficiente. Il file viene letto e scritto utilizzando buffer di byte.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path in = java.nio.file.Paths.get("data.bin");
    java.nio.file.Path out = java.nio.file.Paths.get("copy.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(in));
         java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(out))) {
      int b;
      while ((b = bis.read()) != -1) {
        bos.write(b);
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Verifica sugli stream con buffer

Verifica rapida: perché si utilizzano BufferedInputStream o BufferedOutputStream?

Riepilogo

Riepilogo: gli stream con buffer migliorano le prestazioni raggruppando molte operazioni di lettura o scrittura di piccole dimensioni in operazioni più grandi.

Domande Frequenti

La lezione «Stream bufferizzati» è gratuita?

Sì — il testo completo di «Stream bufferizzati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 3 lezioni in totale.

Cosa imparerò in «Stream bufferizzati»?

Imparare a utilizzare gli stream bufferizzati: BufferedInputStream e BufferedOutputStream per un I/O efficiente di byte. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 3.

Quanto tempo richiede la lezione «Stream bufferizzati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Path/Files di java.nio.file
  2. Lettura e scrittura di file di testo
  3. Stream bufferizzati
← Torna a Java Academy