Jaka jest różnica między I / O opartymi na kanałach a I / O opartymi na strumieniu w Javie?


21

Jaka jest różnica między wejściem strumieniowym a wejściem kanałowym? Interfejs API java zapewnia zarówno strumień w pakiecie „java.io”, jak i kanał w pakiecie „java.nio”. Który z nich ma lepszą wydajność i skraca czas działania?


sprawdziłeś wiki tagu „nio” na Stack Overflow? „NIO oznacza„ Nowe we / wy ”. Zostało wprowadzone w JDK 1.4 w pakiecie java.nio. Zawiera kilka elementów: ...”
gnat

1
to dobre pytanie, 10 lat temu ... krótka odpowiedź jest taka , że jest mnóstwo obszernej dokumentacji na temat tego, kiedy korzystać z której technologii, obie wciąż istnieją, ponieważ są lepsze w różnych rzeczach. Długa odpowiedź Google ma wszystko, co musisz wiedzieć.

Myślę, że jest to dobre pytanie wstępne. OP jest jednym z dzisiejszych szczęśliwych 10.000 .
Gary Rowe

Według stackoverflow.com/questions/2810156/concepts-channel-vs-stream - kanał jest zorientowany na wiadomości, podczas gdy strumień jest zorientowany na bajty i prawdopodobnie nie wie, jak podzielić wiadomości. Kolejna różnica polega na tym, że kanały przechowują wiadomości, podczas gdy strumienie nie.
inf3rno,

Odpowiedzi:


13

Zobacz ten Oracle blogu za dobry przegląd

Nie zapomnij też czytać o interfejsach API NIO.2 Java 7!

Pod względem wydajności itp. Odpowiedź brzmi: „to zależy”. Zależy to od właściwości twojego I / O, np. Jego rozmiaru, jego „kształtu”, czy to sieci, dysku, pamięci czy ...


8
Oto link do archiwum: web.archive.org/web/20140528182031/https : //blogs.oracle.com/slc/... - Dlatego odpowiedzi tutaj powinny być w stanie pracować bez ich linków btw
piegames
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.