InputStream.transferTo()
Copia un InputStream a un OutputStream en una sola llamada.
Comparación de Código
✕ 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);
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Una línea
Reemplaza todo el bucle de lectura/escritura con una sola llamada.
Optimizado
El tamaño del buffer interno está ajustado para máximo rendimiento.
Sin errores
Sin errores de desplazamiento en la gestión del buffer.
Enfoque Antiguo
Bucle de copia manual
Enfoque Moderno
transferTo()
Desde JDK
9
Dificultad
Principiante
Soporte JDK
InputStream.transferTo()
Disponible
Ampliamente disponible desde JDK 9 (septiembre de 2017)
Cómo funciona
transferTo() lee todos los bytes del flujo de entrada y los escribe en el flujo de salida. Sin gestión de buffer, sin bucle. Usa un buffer interno optimizado.
Documentación Relacionada