プログラム内のすべてのデータは、ストリームの形式で送信または保存されます。プログラムがデータを必要とするときは、入力ストリームを使用してデータを読み取る必要があり、プログラムが何らかのデータを必要とするときは、入力ストリームを使用する必要があります。データを保存するときは、出力ストリームを使用して行われます。
プログラム内の入力と出力はすべてストリーム形式で保存され、ストリームに保存されるものは実際にはバイト ファイルです。
バイト ストリームと文字ストリーム
java.io パッケージ内の操作ファイルの内容には、バイト ストリームと文字ストリームという 2 つの主要なカテゴリがあり、どちらも分割されています。入出力操作に組み込まれます。バイトストリームでの出力は主にOutputStream、入力は主にInputStream、文字ストリームでの出力は主にWriterクラス、入力ストリームは主にReaderクラスで行われます。 (これら 4 つは抽象クラスです)
Java は、次のような入出力関数 Java.io を提供します:
InputStream、OutputStream、Reader、Writer
#InputStreamおよび OutputStream はバイト ストリーム用に設計されており、主にバイトまたはバイナリ オブジェクトを処理するために使用されます。 Reader と Writer は文字ストリーム (1 文字が 2 バイトを占める) 用に設計されており、主に文字または文字列を処理するために使用されます。 文字ストリーム処理単位は 2 バイトの Unicode 文字で、それぞれ文字、文字配列、または文字列を操作します。一方、バイト ストリーム処理単位は 1 バイトで、バイトとバイト配列を操作します。したがって、文字ストリームは、Java 仮想マシンがバイトを 2 バイトの Unicode 文字に変換することによって形成されるため、複数言語のサポートが強化されます。音声ファイル、画像、音楽の場合はバイト ストリームを使用し、中国語 (テキスト) に関連する場合は文字ストリームを使用するのが適しています。 すべてのファイルはバイト単位で保存されます。ディスク上に保持されるのはファイルの文字ではなく、まず文字がバイトにエンコードされてから、これらのバイトがディスクに保存されます。ファイル (特にテキスト ファイル) を読み取るときも、バイト シーケンスを形成するためにバイトごとに読み取られます。 バイト ストリームは、バイナリ オブジェクトを含むあらゆる種類のオブジェクトに使用できますが、文字ストリームは文字または文字列のみを処理できます。2. バイト ストリームは、あらゆる種類の IO 操作を処理する機能を提供しますが、ハンドルはできません。 Unicode 文字を直接処理し、文字ストリームがまさにそれを行います。 バイト ストリームは最も基本的なもので、InputStrem と OutputStream のすべてのサブクラスは主にバイナリ データの処理に使用され、バイト単位で処理されますが、実際には多くのデータはテキストであり、文字ストリームの概念仮想マシンのエンコーディングに従って処理される、つまり文字セットが変換されるという問題が提案されています。この 2 つは、InputStreamReader と OutputStreamWriter を通じて関連付けられています。実際には、これらは byte[] と String を通じて関連付けられています。開発中に発生する問題は、実際には文字ストリームとバイト ストリーム間の変換の不一致によって引き起こされます。 Reader クラスの read() メソッドの戻り値の型は int です。次の場合、0 ~ 65535 (0x00-0xffff) の範囲の整数 (2 バイトで 16 ビットに相当) として読み取られる文字です。ストリームの終わりに到達すると、-1 が返されます。 inputStream の read() も int を返しますが、このクラスはバイト ストリーム向けで 1 バイトが 8 ビットを占有するため、0 ~ 255 の範囲の int バイト値を返します。ストリームの終わりに達したために使用可能なバイトがない場合は、値 -1 が返されます。したがって、0 ~ 255 で表現できない値は文字ストリームを使用して読み取る必要があります。たとえば、漢字です。 php 中国語 Web サイト、無料のJava 入門チュートリアルが多数あり、オンラインで学習することを歓迎します。
以上がJavaストリームの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。