อะไรคือความแตกต่างระหว่าง I / O ตามแชนเนลและ I / O ตามกระแสในจาวา?


21

อะไรคือความแตกต่างระหว่างอินพุตตามสตรีมและอินพุตจากแชแนล java API จัดเตรียมทั้งสตรีมในแพ็คเกจ "java.io" และอิงตามแชนเนลในแพ็คเกจ "java.nio" ตัวใดตัวหนึ่งในสองที่มีประสิทธิภาพดีกว่าและลดข้อผิดพลาดในการทำงาน


คุณตรวจสอบวิกิแท็ก 'nio'ที่ Stack Overflow หรือไม่ "NIO ย่อมาจาก 'New I / O' มันถูกนำมาใช้ใน JDK 1.4 ในแพ็คเกจ java.nio ประกอบด้วยองค์ประกอบหลายอย่าง: ... "
gnat

1
นี่เป็นคำถามที่ดีเมื่อ10 ปีที่แล้ว ... คำตอบสั้น ๆ มันขึ้นอยู่กับว่ามีเอกสารมากมายที่จะใช้เทคโนโลยีใดซึ่งทั้งคู่ยังคงอยู่รอบ ๆ เพราะพวกเขาดีกว่าในสิ่งที่แตกต่างกัน คำตอบยาว ๆ Google มีทุกสิ่งที่คุณจำเป็นต้องรู้

ฉันคิดว่านี่เป็นคำถามที่ดีสำหรับเกตเวย์ สหกรณ์เป็นหนึ่งในวันนี้โชคดี 10,000
Gary Rowe

ตามstackoverflow.com/questions/2810156/concepts-channel-vs-stream - แชแนลเป็นข้อความที่มุ่งเน้นในขณะที่สตรีมเป็นไบต์ที่มุ่งเน้นและอาจไม่ทราบวิธีการแบ่งข้อความ ความแตกต่างอีกประการหนึ่งคือช่องทางจัดเก็บข้อความขณะที่สตรีมไม่
inf3rno

คำตอบ:


13

ดูโพสต์บล็อกของ Oracle นี้สำหรับภาพรวมที่ดี

อย่าลืมอ่าน NIO.2 APIs ของ Java 7 ด้วย!

ในแง่ของประสิทธิภาพ ฯลฯ คำตอบก็คือ "มันขึ้นอยู่กับ" ขึ้นอยู่กับคุณสมบัติของ I / O ของคุณเช่นขนาดของมันรูปร่างของมันไม่ว่าจะเป็นเครือข่ายหรือดิสก์หรือในหน่วยความจำหรือ ...


8
ที่นี่ลิงก์ไปยังที่เก็บถาวร: web.archive.org/web/20140528182031/https://blogs.oracle.com/slc/… - นั่นคือเหตุผลที่คำตอบที่นี่ควรจะทำงานโดยไม่มีลิงก์ btw
piegames
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.