I/O مبتدئ

انسخ InputStream إلى OutputStream في استدعاء واحد.

✕ 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);
هل ترى مشكلة في هذا الكود؟ أخبرنا.
📏

سطر واحد

استبدل حلقة قراءة/كتابة كاملة باستدعاء دالة واحد.

مُحسَّن

حجم المخزن المؤقت الداخلي مضبوط للأداء.

🛡️

لا أخطاء

لا أخطاء off-by-one في إدارة المخزن المؤقت.

الأسلوب القديم
حلقة نسخ يدوية
الأسلوب الحديث
transferTo()
منذ JDK
9
الصعوبة
مبتدئ
InputStream.transferTo()
متاح

متاح على نطاق واسع منذ JDK 9 (سبتمبر 2017)

تقرأ transferTo() جميع البايتات من تدفق الإدخال وتكتبها إلى تدفق الإخراج. لا إدارة مخزن مؤقت ولا حلقة. تستخدم مخزناً مؤقتاً داخلياً محسَّناً.

مشاركة 𝕏 🦋 in