5

、または でHttpConnectionClassを使用するときはいつでも、リモート サーバー経由でデータの読み取りと書き込みを行うために/ classを使用します。ただし、同じ目的で使用できる/のような他のクラスがあります。/ class withに関する質問を見ました。専門家から、これら2つの違いは何ですか?Java MEAndroidBlackBerryDataInputStreamDataOutputStreamInputStreamOutputStreamInputStreamOutputStreamHttpConnection

4

3 に答える 3

15

DataInputStream/DataOutputStreamInputStream/Outputstreamです。 InputStreamおよびOutputStreamは、使用できる最も一般的な IO ストリームであり、Java のすべてのストリームの基本クラスです。生のバイトを読み書きできるのは、それらだけです。DataInputStreamフォーマットされたバイナリ データを書き込みます。単純なフォーマットされていないバイトの代わりに、、、、、、、UTF-8 文字列、およびそのデータの任意の混合物を読み取ることBytesができますInteger。これらの高レベルのデータ型を書き込むことを除いて、同じことが言えます。DoubleFloatShortDataOutputStream

DataInputStream/には/へのDataOutputStream参照があり、生のバイトを読み取り、それらのバイトを前述のデータ型として解釈します。InputStreamOutputStream

から文字列を読み取るのDataInputStreamは良い考えではありませんが、基になる の文字エンコーディングについて変更不可能な仮定を行うためInputStreamです。代わりにReader、基になるバイト ストリームに文字エンコーディングを適切に適用してデータを読み取る を使用することをお勧めします。DataInputStream/DataOutputStreamの使用が制限されているのはそのためです。通常、プロセス間でテキスト データを交換する方が適切です。これは、サーバーとクライアントがデータの解析方法について合意するのが最も簡単だからです。バイナリー取引には、各プロセスが同じ言語を話していることを確認するために発生しなければならない多くのビット調整があります。DataInputStream/を使用する 2 つの Java プロセスがある場合は簡単ですが、JavaDataOutputStream以外の新しいクライアントを追加したい場合は、再利用するのが難しくなります。不可能ではありませんが、難しいだけです。

于 2012-01-19T05:46:23.627 に答える