Javaの文字ストリームとバイトストリームの違いは何ですか
Java の文字ストリームとバイト ストリームの違い: (推奨: java ビデオ チュートリアル)
1.バイト ストリーム操作の基本単位はバイトであり、文字ストリーム操作の基本単位は Unicode コード要素です。
2. バイト ストリームはデフォルトではバッファを使用しませんが、文字ストリームはバッファを使用します。
3. バイト ストリームは通常、バイナリ データの処理に使用されます。実際、あらゆるタイプのデータを処理できますが、Unicode コード要素の直接の書き込みや読み取りはサポートされていません。文字ストリームは通常、テキスト データを処理します。 Unicode コード単位の書き込みと読み取りをサポートします。
バイト ストリーム
Java におけるバイト ストリーム処理の最も基本的な単位は 1 バイトであり、通常はバイナリ データの処理に使用されます。 Java の 2 つの最も基本的なバイト ストリーム クラスは、InputStream と OutputStream で、それぞれ基本的な入力バイト ストリームと出力バイト ストリームを表します。
InputStream クラスと OutputStream クラスはどちらも抽象クラスであり、実際に使用する場合には、通常、Java クラス ライブラリで提供されている一連のサブクラスを使用します。 Java のバイト ストリームを紹介するために、InputStream クラスを例に挙げてみましょう。
InputStream クラスは、バイト ストリームからバイトを読み取るための基本メソッド read を定義します。このメソッドの定義は次のとおりです:
public abstract int read() throws IOException;
これは抽象メソッドです。つまり、任意の入力バイト ストリームです。 InputStream から派生したクラスは、このメソッドを実装する必要があります。このメソッドの機能は、バイト ストリームからバイトを読み取ることです。最後に到達した場合は -1 を返し、そうでない場合は読み取ったバイトを返します。
このメソッドについて注意する必要があるのは、読み取りバイトまたは -1 を返すまでブロックされるということです。さらに、バイト ストリームはデフォルトではキャッシュをサポートしていません。つまり、読み取りメソッドが呼び出されるたびに、オペレーティング システムはバイトの読み取りを要求され、多くの場合ディスク IO が伴うため、効率は比較的低くなります。
友人の中には、バイト配列をパラメーターとして受け取る、InputStream クラスの読み取りのオーバーロードされたメソッドは、頻繁なディスク IO を行わずに一度に複数バイトを読み取ることができると考える人もいるかもしれません。では、これは本当にそうなのでしょうか?このメソッドのソース コードを見てみましょう:
public int read(byte b[]) throws IOException { return read(b, 0, b.length); }
これは別のバージョンの読み取りオーバーロード メソッドを呼び出します。したがって、フォローアップしてみましょう:
public int read(byte b[], int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); } else if (off < 0 || len < 0 || len > b.length - off) { throw new IndexOutOfBoundsException(); } else if (len == 0) { return 0; } int c = read(); if (c == -1) { return -1; } b[off] = (byte)c; int i = 1; try { for (; i < len ; i++) { c = read(); if (c == -1) { break; } b[off + i] = (byte)c; } } catch (IOException ee) { } return i; }
上記のコードから、はい、ということがわかります。実際、read(byte[]) メソッドも、ループ内で read() メソッドを呼び出すことによってバイト配列を「一度に」読み取るため、基本的にこのメソッドはメモリ バッファを使用しません。メモリ バッファを使用して読み取り効率を向上するには、BufferedInputStream を使用する必要があります。
文字ストリーム
Java における文字ストリーム処理の最も基本的な単位は Unicode コード要素 (サイズ 2 バイト) で、通常はテキスト データの処理に使用されます。いわゆる Unicode コード要素は、0x0000 ~ 0xFFFF の範囲の Unicode コード単位です。上記の範囲の各数値は 1 つの文字に対応します。Java の String 型は、デフォルトで Unicode 規則に従って文字をエンコードし、メモリに格納します。
ただし、メモリ内のストレージとは異なり、ディスクに保存されたデータには通常、さまざまなエンコード方式が使用されます。異なるエンコード方法を使用すると、同じ文字でも異なるバイナリ表現になります。実際、文字ストリームは次のように動作します。
出力文字ストリーム: ファイルに書き込まれる文字シーケンス (実際には Unicode コード要素シーケンス) を、指定されたエンコード方式でバイト シーケンスに変換します。ファイルに書き込む;
入力文字ストリーム: 指定されたエンコード方式に従って、読み込まれるバイト シーケンスを対応する文字シーケンス (実際には Unicode コード要素シーケンス) にデコードして、ファイルに格納できるようにします。メモリ。
このプロセスの理解を深めるためにデモを使用します。サンプル コードは次のとおりです:
import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { public static void main(String[] args) { FileWriter fileWriter = null; try { try { fileWriter = new FileWriter("demo.txt"); fileWriter.write("demo"); } finally { fileWriter.close(); } } catch (IOException e) { e.printStackTrace(); } } }
Java の詳細については、Java 基本チュートリアル##を参照してください。 # カラム。
以上がJavaの文字ストリームとバイトストリームの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。
