Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความสำคัญของเมธอด transferTo() ของ InputStream ใน Java 9

เมธอด transferTo() คืออะไร?

Java 9 เพิ่มเมธอด transferTo() ให้กับคลาส InputStream ใช้สำหรับ คัดลอกข้อมูลจาก Input Stream ไปยัง Output Stream โดยอ่านไบต์ทั้งหมดจาก input stream และเขียนไปยัง output stream ตามลำดับที่อ่าน

Syntax

public long transferTo(OutputStream out) throws IOException

ตัวอย่างการใช้งาน

import java.util.Arrays;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class TransferToMethodTest {
    public void testTransferTo() throws IOException {
        byte[] inBytes = "tutorialspoint".getBytes();
        ByteArrayInputStream bis = new ByteArrayInputStream(inBytes);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try {
            bis.transferTo(bos);
            byte[] outBytes = bos.toByteArray();
            System.out.println(Arrays.equals(inBytes, outBytes));
        } finally {
            try { bis.close(); } catch(IOException e) { e.printStackTrace(); }
            try { bos.close(); } catch(IOException e) { e.printStackTrace(); }
        }
    }
    public static void main(String args[]) throws Exception {
        TransferToMethodTest test = new TransferToMethodTest();
        test.testTransferTo();
    }
}

Output

true

ประโยชน์ของ transferTo()

  • โค้ดสั้นและอ่านง่ายกว่าการวนลูปอ่าน/เขียนเอง
  • จัดการ buffer และประสิทธิภาพได้ดีขึ้น (internal optimization)
  • ลดโอกาสเกิดข้อผิดพลาดจากการจัดการ stream เอง

สรุป

เมธอด transferTo() เป็นวิธีที่สะดวกและมีประสิทธิภาพในการคัดลอกข้อมูลระหว่าง streams ใน Java 9 ขึ้นไป