Java'da kanal tabanlı G / Ç ve akış tabanlı G / Ç arasındaki fark nedir?


21

Akım Tabanlı Giriş ile Kanal Tabanlı Giriş arasındaki fark nedir? Java API, "java.io" paketinde akış tabanlı ve "java.nio" paketinde kanal tabanlı sağlar. Bu ikisinden hangisi performansta ve çalışma zamanı hatalarında daha iyi?


Stack Overflow'daki 'nio' etiketi wiki'sini kontrol ettin mi? "NIO," Yeni G / Ç "anlamına gelir. JDK 1.4'te java.nio paketinde tanıtıldı. Birkaç öğe içeriyor: ..."
gnat

1
bu iyi bir soru, 10 yıl önce ... kısa cevap şu ki, hangi teknolojinin ne zaman kullanılacağına dair çok sayıda kapsamlı dokümantasyon var, ikisi de hala farklı şeyler için daha iyi oldukları için. Uzun cevap Google bilmeniz gereken her şeye sahiptir.

Bunun iyi bir ağ geçidi sorusu olduğunu düşünüyorum. OP bugünün şanslı 10.000'inden biridir .
Gary Rowe

Göre stackoverflow.com/questions/2810156/concepts-channel-vs-stream - akışı odaklı bayt olduğunu ve muhtemelen mesajları bölmek bilmiyor iken kanal mesajı aydınlatmaktadır. Başka bir fark, kanalların akışlar yayınlarken mesajları depolaması.
inf3rno

Yanıtlar:


13

İyi bir genel bakış için bu Oracle blog yayınına bakın

Ayrıca Java 7'nin NIO.2 API'larını okumayı da ihmal etmeyin!

Performans vb. Açısından, cevap “duruma bağlıdır”. I / O'nuzun özelliklerine bağlıdır, örn. Boyutu, 'şekli', Ağ veya disk veya bellekte olsun ya da ...


8
İşte arşiv bağlantısı: web.archive.org/web/20140528182031/https://blogs.oracle.com/slc/… - Bu yüzden buradaki yanıtlar bağlantıları olmadan çalışabilmelidir btw
piegames
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.