I/O Principiante

Copia un InputStream su un OutputStream in una chiamata.

✕ Java 8
byte[] buf = new byte[8192];
int n;
while ((n = input.read(buf)) != -1) {
    output.write(buf, 0, n);
}
✓ Java 9+
input.transferTo(output);
Vedi un problema con questo codice? Faccelo sapere.
📏

Una riga

Sostituisci l'intero loop di lettura/scrittura con una chiamata a metodo.

Ottimizzato

La dimensione del buffer interno è ottimizzata per le prestazioni.

🛡️

Nessun bug

Nessun errore off-by-one nella gestione del buffer.

Approccio Vecchio
Loop di copia manuale
Approccio Moderno
transferTo()
Dal JDK
9
Difficoltà
Principiante
InputStream.transferTo()
Disponibile

Ampiamente disponibile dal JDK 9 (settembre 2017)

transferTo() legge tutti i byte dal flusso di input e li scrive nel flusso di output. Nessuna gestione del buffer, nessun loop. Usa un buffer interno ottimizzato.

Condividi 𝕏 🦋 in