InputStream.transferTo()
এক কল (call)-এই একটি 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);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
এক লাইন
একটি মেথড কল দিয়ে সম্পূর্ণ রিড/রাইট লুপ প্রতিস্থাপন করুন।
অপ্টিমাইজড (Optimized)
ইন্টারনাল বাফারের সাইজ পারফরম্যান্সের জন্য টিউন (tuned) করা হয়।
কোনো বাগ নেই
বাফার ম্যানেজমেন্টে অফ-বাই-ওয়ান (off-by-one) এরর হওয়ার ঝুঁকি থাকে না।
পুরনো পদ্ধতি
ম্যানুয়াল কপি লুপ
আধুনিক পদ্ধতি
transferTo()
JDK থেকে
9
কঠিনতা
প্রাথমিক
JDK সমর্থন
InputStream.transferTo()
উপলব্ধ
JDK 9 (সেপ্টেম্বর 2017) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
transferTo() মেথডটি ইনপুট স্ট্রিম থেকে সমস্ত বাইট রিড করে এবং সেগুলোকে আউটপুট স্ট্রিমে রাইট করে। এখানে কোনো বাফার ম্যানেজমেন্ট বা লুপের প্রয়োজন নেই। এটি একটি অপ্টিমাইজড ইন্টারনাল বাফার (optimized internal buffer) ব্যবহার করে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ