工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java InputStreamReader クラス

Java InputStreamReader クラス

このチュートリアルでは、例を使用して Java InputStreamReader とそのメソッドについて学習します。

InputStreamReader java.io のクラス パッケージを使用して、バイト単位のデータを文字単位のデータに変換できます。

抽象クラス Reader を拡張します .

InputStreamReader クラスは他の入力ストリームで動作します。これは、バイト ストリームと文字ストリーム間のブリッジとしても知られています。これは InputStreamReader 入力ストリームからバイトを文字として読み取ります。

たとえば、一部の文字は、ストレージに格納するために 2 バイトが必要でした。このようなデータを読み取るには、2 バイトを一緒に読み取り、対応する文字に変換する入力ストリーム リーダーを使用できます。


InputStreamReader を作成する

InputStreamReader を作成するには 、 java.io.InputStreamReader をインポートする必要があります 最初にパッケージ。ここでパッケージをインポートしたら、入力ストリーム リーダーを作成する方法を説明します。

// Creates an InputStream
FileInputStream file = new FileInputStream(String path);

// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);

上記の例では、InputStreamReader を作成しました。 名前付き input FileInputStream とともに 名前付き ファイル .

ここで、ファイル内のデータは、デフォルトの文字エンコーディングを使用して保存されます。

ただし、文字エンコーディングのタイプ (UTF8) を指定できます。 または UTF16 ) ファイルにも含まれています。

// Creates an InputStreamReader specifying the character encoding
InputStreamReader input = new InputStreamReader(file, Charset cs);

ここでは、Charset を使用しました クラスでファイルの文字エンコーディングを指定します。


InputStreamReader のメソッド

InputStreamReader クラスは、Reader に存在するさまざまなメソッドの実装を提供します クラス。

read() メソッド

たとえば、input.txt という名前のファイルがあるとします。

This is a line of text inside the file.

InputStreamReader を使用してこのファイルを読み取ってみましょう .

import java.io.InputStreamReader;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    // Creates an array of character
    char[] array = new char[100];

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader
      InputStreamReader input = new InputStreamReader(file);

      // Reads characters from the file
      input.read(array);
      System.out.println("Data in the stream:");
      System.out.println(array);

      // Closes the reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

出力

Data in the stream:
This is a line of text inside the file.

上記の例では、ファイル入力ストリームを使用して入力ストリーム リーダーを作成しました。入力ストリーム リーダーはファイル input.txt にリンクされています .

 FileInputStream file = new FileInputStream("input.txt");
 InputStreamReader input = new InputStreamReader(file);

ファイルから文字を読み取るために、 read() を使用しました メソッド。


getEncoding() メソッド

getEncoding() メソッドを使用して、入力ストリームにデータを格納するために使用されるエンコーディングのタイプを取得できます。たとえば、

import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader with default encoding
      InputStreamReader input1 = new InputStreamReader(file);

      // Creates an InputStreamReader specifying the encoding
      InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8"));

      // Returns the character encoding of the input stream
      System.out.println("Character encoding of input1: " + input1.getEncoding());
      System.out.println("Character encoding of input2: " + input2.getEncoding());

      // Closes the reader
      input1.close();
      input2.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

出力

The character encoding of input1: Cp1252
The character encoding of input2: UTF8

上記の例では、input1 という名前の 2 つの入力ストリーム リーダーを作成しました。 と input2 .

注意 :Charset.forName() を使用しました 文字エンコーディングの種類を指定するメソッド。詳細については、Java Charset (公式の Java ドキュメント) を参照してください。


close() メソッド

入力ストリーム リーダーを閉じるには、close() を使用できます。 方法。一度 close() メソッドが呼び出されると、リーダーを使用してデータを読み取ることはできません。


InputStreamReader のその他のメソッド

メソッド 説明
ready() ストリームを読み取る準備ができているかどうかを確認します
mark() データが読み取られたストリーム内の位置をマークします
reset() マークが設定されたストリーム内のポイントにコントロールを返します

詳細については、Java InputStreamReader (公式の Java ドキュメント) にアクセスしてください。


Java

  1. Java 最終キーワード
  2. オペレーターの Java インスタンス
  3. Java 継承
  4. Java ネストされた静的クラス
  5. Java匿名クラス
  6. Java シングルトン クラス
  7. Java リフレクション
  8. Java ObjectOutputStream クラス
  9. Java スキャナー クラス
  10. Javaジェネリック
  11. Java ファイル クラス