English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 異常処理

Java リスト(List)

Java Queue(キュー)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 他のトピック

Java FileReader クラス

ここでは、サンプルを用いてJava FileReader及其メソッドを学びます。

java.ioパッケージのFileReaderクラスは、ファイルからデータを読み取る(文字単位で)ために使用できます。

それはInputStreamReaderクラスを継承しています。

FileReaderについて学ぶ前に、以下のことを確認してくださいJava ファイル

FileReaderを作成する

ファイルリーダーを作成するには、まずjava.io.FileReaderパッケージをインポートする必要があります。パッケージをインポートした後、ここにファイルリーダーを作成する方法があります。

1.ファイル名を使用して

FileReader input = new FileReader(String name);

ここでは、指定されたファイル名にリンクされるファイルリーダーを作成します。

2.ファイルオブジェクトを使用して

FileReader input = new FileReader(File fileObj);

ここでは、ファイルオブジェクトが指定するファイルにリンクされるファイルリーダーを作成します。

上記の例では、ファイル内のデータは特定のデフォルトの文字エンコードで保存されています。

しかし、Java 11ファイル内で文字エンコードの種類を指定することもできます(UTF-8またはUTF-16)

FileReader input = new FileReader(String file, Charset cs);

ここでは、Charsetクラスを使用してファイル読み取りの文字エンコードを指定します。

FileReaderのメソッド

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

read()メソッド

  • read() - 読み取った単一の文字

  • read(char[] array) - 読み取った文字を指定された配列に保存します

  • read(char[] array, int start, int length) - から読み取った長さの文字数をstart位置から指定された配列に格納します

例えば、以下の名前のinput.txtのファイルが含まれています。

This is a line of text inside the file.

ファイルリーダーを使用してファイルを読み取ることを試みましょう。

import java.io.FileReader;
class Main {
  public static void main(String[] args) {
    //文字配列を作成します
    char[] array = new char[100];
    try {
      //FileReaderを使用してリーダーを作成します
      FileReader input = new FileReader("input.txt");
      //文字を読み取ります
      input.read(array);
      System.out.println("Data in the file: ");
      System.out.println(array);
      // 閉じます reader
      input.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

出力結果

ファイル内のデータ:
This is a line of text inside the file.

上の例では、inputという名前のファイルリーダーを作成しました。ファイルリーダーはファイルinput.txtリンク。

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

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

getEncoding()メソッド

getEncoding()メソッドは、ファイルにデータを格納するために使用されるエンコーディング形式を取得するために使用できます。例えば、

import java.io.FileReader;
import java.nio.charset.Charset;
class Main {
  public static void main(String[] args) {
    try {
      //デフォルトのエンコーディングでFileReaderを作成します
      FileReader input1 = new FileReader("input.txt");
      //指定されたエンコーディングでFileReaderを作成します
      FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8"));
      //ファイルリーダーの文字コードを返します
      System.out.println("input1の文字コード: " + input1.getEncoding());
      System.out.println("input2の文字コード: " + input2.getEncoding());
      //閉じます reader
      input1.close();
      input2.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

出力結果

input1の文字コード: Cp1252
input2の文字コード: UTF8

上記の例では、2のファイルリーダー、それぞれinput1とinput2

  • input1文字コードが指定されていません。したがって、getEncoding()メソッドはデフォルトの文字コードを返します。

  • input2指定された文字コードUTF8:したがって、getEncoding()メソッドは指定された文字コードを返します。

注意:Charset.forName()メソッドを使用して指定された文字コードのタイプを指定しました。

close()メソッド

ファイルリーダーを閉じるには、close()メソッドを使用できます。close()メソッドを呼び出した後、リーダーでデータを読み取ることができなくなります。

FileReaderの他のメソッド

メソッド説明
ready()ファイルリーダーが読み込む準備ができているかを確認します
mark()ファイルリーダーで読み込んだデータの場所をマークします
reset()リーダーをリセットし、リーダーに設定されたマークの場所に戻します