JavaのチャネルベースのI / OとストリームベースのI / Oの違いは何ですか?


21

ストリームベースの入力とチャンネルベースの入力の違いは何ですか?Java APIは、「java.io」パッケージのストリームベースと「java.nio」パッケージのチャンネルベースの両方を提供します。2つのうちどちらがパフォーマンスが向上し、実行時エラーが減少しますか?


Stack Overflowで「nio」タグwikiを確認しましたか?「NIOは「New I / O」の略です。java.nioパッケージのJDK 1.4で導入されました。いくつかの要素で構成されています。...」
gnat

1
これは10年前の良い質問です... 簡単な答えはそれが依存することです。どのテクノロジーを使用するかについての豊富なドキュメントがたくさんあります。長い答え Googleには、知っておくべきすべてが揃っています。

これは良いゲートウェイの質問として役立つと思います。OPは今日の幸運な10,000の1つです。
ゲイリーロウ

stackoverflow.com/questions/2810156/concepts-channel-vs-streamによると、チャネルはメッセージ指向であり、ストリームはバイト指向であり、おそらくメッセージを分割する方法がわかりません。もう1つの違いは、チャネルはメッセージを保存しますが、ストリームは保存しないことです。
inf3rno

回答:


13

概要については、このOracleブログ投稿を参照してください

また、Java 7のNIO.2 APIを読むことを怠らないでください!

パフォーマンスなどの面では、答えは「依存する」です。I / Oの特性に依存します。たとえば、サイズ、形状、ネットワーク、ディスク、メモリ、または...などです。


8
ここにアーカイブへのリンク:web.archive.org/web/20140528182031/https :
//blogs.oracle.com/slc/…-
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.