InputStream.transferTo()
Bir InputStream'i tek çağrıyla OutputStream'e kopyalayın.
Kod Karşılaştırması
✕ 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);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Tek satır
Tüm okuma/yazma döngüsünü tek bir metod çağrısıyla değiştirin.
Optimize edilmiş
İç tampon boyutu performans için ayarlanmıştır.
Hata yok
Tampon yönetiminde tek tek kayma hatası yoktur.
Eski Yaklaşım
Manuel Kopyalama Döngüsü
Modern Yaklaşım
transferTo()
JDK'dan itibaren
9
Zorluk
Başlangıç
JDK Desteği
InputStream.transferTo()
Mevcut
JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)
Nasıl çalışır
transferTo(), giriş akışındaki tüm baytları okur ve çıkış akışına yazar. Tampon yönetimi veya döngü gerekmez. Optimize edilmiş bir iç tampon kullanır.
İlgili Belgeler