I/O Débutant

Copie un InputStream vers un OutputStream en un seul appel.

✕ 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);
Un problème avec ce code ? Dites-le nous.
📏

Une ligne

Remplace toute la boucle de lecture/écriture par un seul appel.

Optimisé

La taille du buffer interne est ajustée pour des performances maximales.

🛡️

Sans erreurs

Sans erreurs de décalage dans la gestion du buffer.

Ancienne Approche
Boucle de copie manuelle
Approche Moderne
transferTo()
Depuis JDK
9
Difficulté
Débutant
InputStream.transferTo()
Disponible

Disponible depuis JDK 9 (septembre 2017)

transferTo() lit tous les octets du flux d'entrée et les écrit dans le flux de sortie. Sans gestion de buffer, sans boucle. Utilise un buffer interne optimisé.

Partager 𝕏 🦋 in