Java IOストリーム - 【情報管理システムをゼロから構築する】

Java I/O Stream - [情報管理システムをゼロから構築する]


Java I/Oストリームとは

導入

Java の IO ストリーム (入力/出力ストリーム) は、データを読み書きするためのメカニズムです。IO ストリームは、次のようなさまざまなタイプの入出力を処理するための統一された方法を提供します。

ファイル、ネットワーク接続、メモリ バッファなどが含まれます。

Java では、IO ストリームはデータの流れの方向に応じて入力ストリーム (InputStream) と出力ストリーム (OutputStream) に分割されます。入力ストリームは、データ ソース (ファイル、ネットワーク接続など) から読み取るために使用されます。

出力ストリームからデータを読み取るとき、出力ストリームは宛先 (ファイル、ネットワーク接続など) にデータを書き込むために使用されます。このストリーミング アプローチにより、さまざまな種類のデータ ソースへの透過的なアクセスが可能になります。

ハートボトムの実装詳細。

Java は、さまざまなシナリオのニーズを満たすために、さまざまなタイプの IO ストリームを提供します。一般的な IO ストリームには、ByteStream と CharacterStream が含まれます。キャラクター

Throttle は、主に、FileInputStream や FileOutputStream などの、InputStream と OutputStream のサブクラスを使用して、バイト単位で読み取りと書き込みを行います。文字ストリーム

主に FileReader や FileWriter など Reader や Writer のサブクラスを使用して文字単位で読み書きを行います。文字ストリームは、テキスト データを処理する場合に便利です。

Unicode 文字を直接処理します。

さらに、Java は、基礎となる入力ストリームまたは出力ストリームをカプセル化し、メモリ内にバッファを提供するバッファ ストリーム (バッファ ストリーム) も提供します。これにより、IO のパフォーマンスが向上します。

パフォーマンス。バッファリングされたストリームは、BufferedInputStream や BufferedOutputStream などの他のタイプのストリームと一緒に使用されることがよくあります。

Java では、バイト ストリームと文字ストリームに加えて、Java オブジェクトをシリアル化および逆シリアル化するためのオブジェクト ストリーム (オブジェクト ストリーム) も提供します。オブジェクト ストリームは Java オブジェクトをバイト オーダーに変換できます

列を作成し、ファイルに保存するかネットワークに送信すると、バイト シーケンスを Java オブジェクトに復元することもできます。オブジェクト ストリームは、ObjectInputStream と ObjectOutputStream を使用して実装されます。

今。

つまり、Java の IO ストリームは、データを簡単に読み書きできる強力で柔軟なツールです。さまざまな種類のデータソースを抽象化する統一インターフェイスを提供します。

詳細により、開発者は基礎となる IO 操作にあまり注意を払うことなく、ビジネス ロジックに集中できるようになります。

理解する

IO ストリームは、Java でデータの読み取りまたは書き込みが必要な場合に使用できます。IO ストリームは、データがある場所から別の場所に流れるパイプラインと考えることができます。

IO ストリームには、入力ストリームと出力ストリームの 2 種類があります。入力ストリームはデータ ソース (ファイルやネットワークなど) からデータを読み取るために使用され、出力ストリームは宛先 (ファイルやネットワークなど) にデータを書き込むために使用されます。

通信網)。

IO ストリームには、バイト ストリームと文字ストリームという 2 つの基本的なストリームがあります。バイト ストリームは生データ (画像や音声など) を扱いますが、文字ストリームはテキスト データを扱います。キャラクターの流れがより四角くなった

Unicode 文字を直接処理できるため、テキストを簡単に処理できます。

パフォーマンスを向上させるために、バッファリングされたストリームを使用することもできます。これらはストリームの両端にバッファを配置するのと同じで、一度に複数のデータを読み書きできるため、効率が向上します。

また、オブジェクトを保存したり、ネットワークに送信したりする場合は、オブジェクト ストリームを使用できます。オブジェクト ストリームは、Java オブジェクトをバイト シーケンスに変換し、このプロセスを逆にすることができます。

一連のバイトから Java オブジェクトまでのプロセス。

一般に、Java の IO ストリームは入出力を処理するためのツールであり、データの読み取りと書き込みに役立ちます。さまざまなタイプのデータを処理するためのさまざまなタイプのストリームを提供します

ストリームとオブジェクト ストリームをバッファリングすることで、パフォーマンスを向上させ、複雑な操作を処理できます。IO ストリームを使用すると、低レベルの詳細にあまり注意を払うことなく、データをより簡単に処理できるようになります。

バイトストリームと文字ストリームの違い

バイト ストリームは 1 バイトを読み取り、文字ストリームは 1 文字を読み取ります (文字はエンコーディングによって異なり、対応するバイトも異なります。たとえば、UTF-8 エンコーディングは 3 バイト、中国語エンコーディングは 2 バイト)

バイト。) バイト ストリームはバイナリ ファイル (画像、MP3、ビデオ ファイル) の処理に使用され、キャラクタ ストリームはテキスト ファイルの処理に使用されます (特定のファイルを使用する特別なバイナリ ファイルとみなすことができます)

人間が判読できるコード)。

つまり、バイトはコンピュータのためのものであり、文字は人間のためのものです。

Java I/O ストリームの役割

Java の IO ストリームは主にデータの読み取りと書き込みに使用されます。ファイル、ネットワーク、メモリなど、さまざまなタイプの入出力を処理するための便利で統一された方法を提供します。

具体的には、Java の IO ストリームは次の目的で使用できます。

  • ファイルからデータを読み取るか、ファイルにデータを書き込みます。
  • データの入出力はネットワーク接続を介して行われます。
  • データを一時的に保存するためにメモリ内にバッファを作成します。
  • テキストデータを文字単位で読み書きします。
  • バイナリデータを処理し、バイトの読み取りと書き込みを行います。

Java の IO ストリームを使用すると、ファイルの内容の読み取り、ファイルへのデータの書き込み、他のコンピュータ上のプログラムとの通信、テキスト ファイルの内容の処理、および異なるデータ ソース間でのデータ転送を簡単に行うことができます。

Java の IO ストリームは、入出力を処理するための便利なツールであり、基礎となる詳細を深く気にすることなく、さまざまな種類のデータの読み取りと書き込みを簡単に行うことができます。

Java I/Oストリームメソッド

InputStream方法

リーダーメソッド

OutputStream方法

ライターメソッド

Java I/O システムのすべてのクラス

使用例

Java では、I/O ストリームを使用したデータの読み取りと書き込みには、次の基本手順が含まれます。

  1. ストリームを開く: まず、入力または出力データ ソースを表す、対応するストリーム オブジェクトを作成する必要があります。たとえば、FileInputStreamファイルの読み取りには を使用し、FileOutputStreamファイルの書き込みには を使用します。
  2. データの読み取りまたは書き込み: ストリーム オブジェクトを通じて対応するメソッドを呼び出して、実際にデータを読み取りまたは書き込みます。たとえば、バイト ストリームの場合は、read()バイトを読み取るメソッドとwrite()バイトを書き込むメソッドを使用でき、文字ストリームの場合は、read()文字を読み取るメソッドとwrite()文字を書き込むメソッドを使用できます。
  3. ストリームを閉じる: データの読み取りまたは書き込み後、関連リソースを解放するためにストリームを閉じる必要があります。close()メソッドを使用してストリームを閉じることができます。

例:

import java.io.*;

public class IOExample {
    
    
    public static void main(String[] args) {
    
    
        try {
    
    
            // 1. 使用字节流读取文件
            FileInputStream fis = new FileInputStream("input.txt");
            int data;

            while ((data = fis.read()) != -1) {
    
    
                // 处理读取到的字节数据
                System.out.print((char) data);
            }

            fis.close(); // 关闭流

            // 2. 使用字符流写入文件
            FileWriter fw = new FileWriter("output.txt");
            String content = "Hello, World!";

            fw.write(content); // 写入数据

            fw.close(); // 关闭流
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

上記の例では、まずFileInputStream読み取り対象のファイルを作成し、read()ファイルの内容をバイト単位で読み取るメソッドを使用します。次に、

FileWriterファイルに書き込み、write()メソッドを使用して文字列をファイルに書き込みます。

IOExceptionデータの読み取りまたは書き込みのプロセス中に例外が発生する可能性があるため、例外を適切に処理する必要があることに注意してください。

Java の I/O ストリームを使用するには、特定のデータ ソースと要件に応じて適切なストリーム タイプを選択し、ストリームを開く、読み取り/書き込み、閉じるという基本的な操作手順に従う必要があります。

実際のアプリケーションで Java I/O ストリームを使用する効果

  1. データの読み取りと書き込み: Java の I/O ストリームを通じて、ファイル内のデータを簡単に読み取りおよび書き込みできます。これにより、テキスト コンテンツの読み取り、ファイルのコピー、構成ファイルの書き込みなどのファイル操作が簡単になります。
  2. ネットワーク通信: Java の I/O ストリームは、ネットワーク通信に使用できる Socket や ServerSocket などのクラスを提供します。ネットワーク I/O フローを通じて、データ送信とメッセージ対話のためのクライアントとサーバー間の通信を簡単に確立できます。
  3. メモリ バッファリング: Java の I/O ストリーム (BufferedReader や BufferedWriter など) のバッファリングされたストリームにより、I/O パフォーマンスが向上します。バッファリングされたストリームを使用すると、基になるデータ ソースでの頻繁な読み取りおよび書き込み操作を減らすことができます。メモリ内にバッファを作成することで、データをバッチで処理して、データの読み取りと書き込みを高速化できます。
  4. オブジェクトのシリアル化: Java の I/O ストリームは、オブジェクトのシリアル化と逆シリアル化のためのオブジェクト ストリーム (ObjectInputStream および ObjectOutputStream) を提供します。これにより、Java オブジェクトをストレージまたは送信用のバイト ストリームに変換したり、バイト ストリームを Java オブジェクトに復元したりすることが可能になります。これは、分散システムとデータの永続化において重要な役割を果たします。
  5. テキスト データの処理: Java の文字ストリーム (リーダーおよびライター) は、主にテキスト データを処理し、指定された文字セットをサポートし、文字エンコードおよびデコード機能を提供するために使用されます。文字ストリームは、テキスト ファイルの読み取りと書き込みを簡単に行うことができ、CSV、XML、または JSON 形式でのデータの読み取りなどの文字列操作を実行できます。

全体として、Java の I/O ストリームは、開発者にデータの読み取りと書き込みのためのさまざまなツールを提供します。さまざまな種類のデータの処理を簡素化し、アプリケーションを改善するのに役立ちます。

仕事に。
5. テキスト データの処理: Java の文字ストリーム (リーダーとライター) は、主にテキスト データを処理し、指定された文字セットをサポートし、文字エンコードおよびデコード機能を提供するために使用されます。文字ストリームは、テキスト ファイルの読み取りと書き込みを簡単に行うことができ、CSV、XML、または JSON 形式でのデータの読み取りなどの文字列操作を実行できます。

全体として、Java の I/O ストリームは、開発者にデータの読み取りと書き込みのためのさまざまなツールを提供します。さまざまな種類のデータの処理を簡素化し、アプリケーションを改善するのに役立ちます。

柔軟性、拡張性、効率性。ファイルの処理、ネットワーク通信、データ バッファリング、オブジェクトのシリアル化など、Java の I/O ストリームは重要な役割を果たします。

おすすめ

転載: blog.csdn.net/m0_73879806/article/details/132262396